diff --git a/core/migrations/0020_merge_20191006_1737.py b/core/migrations/0020_merge_20191006_1737.py new file mode 100644 index 0000000000000000000000000000000000000000..26ff28efa09f011f3c45aa5717720debed1a0f27 --- /dev/null +++ b/core/migrations/0020_merge_20191006_1737.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.17 on 2019-10-06 10:37 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0019_merge_20191006_0852'), + ('core', '0017_vacancy_amount'), + ('core', '0014_auto_20191004_1340'), + ] + + operations = [ + ] diff --git a/core/migrations/0025_merge_20191007_2124.py b/core/migrations/0025_merge_20191007_2124.py new file mode 100644 index 0000000000000000000000000000000000000000..8e208cbf3ca7f8bc351c592768f5e30c61af06b8 --- /dev/null +++ b/core/migrations/0025_merge_20191007_2124.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.17 on 2019-10-07 14:24 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0024_auto_20191007_1533'), + ('core', '0020_merge_20191006_1737'), + ] + + operations = [ + ] diff --git a/core/tests/test_create_vacancies.py b/core/tests/test_create_vacancies.py index 571dfc4c28e7cbbd5413476d379bc040e7eccc78..84f2430e4d35f4ec8e9379e42c7ababa9ee8b555 100644 --- a/core/tests/test_create_vacancies.py +++ b/core/tests/test_create_vacancies.py @@ -129,3 +129,34 @@ class CreateAndUpdateVacancyTest(APITestCase): vacancy = Vacancy.objects.first() self.assertEqual(vacancy.amount, None) + + def test_new_vacancy_on_same_day_with_failed(self): + superuser = User.objects.create_superuser('dummy.company', 'dummy.company@company.com', 'lalala123') + new_company = Company.objects.create(user=superuser, description="lalalaz", status=Company.VERIFIED, logo=None, + address=None) + self.client.force_authenticate(user=superuser) + + url = '/api/vacancies/' + response = self.client.post(url, {'company': new_company.pk, 'open_time': datetime.fromtimestamp(0), + 'close_time': datetime.fromtimestamp(0), 'name': 'new_vacancy', 'description': 'new_vacancy'}, format='json') + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + + vacancies = Vacancy.objects.count() + self.assertEqual(vacancies,0) + + def test_update_vacancy_one_same_day_with_amount_failed(self): + superuser = User.objects.create_superuser('dummy.company', 'dummy.company@company.com', 'lalala123') + new_company = Company.objects.create(user=superuser, description="lalalaz", status=Company.VERIFIED, logo=None, + address=None) + self.client.force_authenticate(user=superuser) + + new_vacancy = Vacancy.objects.create(company=new_company, verified=False, open_time=datetime.fromtimestamp(0), + description="lalala", close_time=datetime.today(), name='new_company') + + url = '/api/vacancies/' + str(new_vacancy.pk) + '/' + response = self.client.patch(url, {'open_time': datetime.fromtimestamp(0), 'close_time': datetime.fromtimestamp(0), + 'name': 'new_vacancy2', 'description': 'new_vacancy2', 'amount': 'sepuluh'}, format='json') + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + + vacancy = Vacancy.objects.first() + self.assertEqual(vacancy.amount, None) \ No newline at end of file diff --git a/core/views/vacancies.py b/core/views/vacancies.py index ca1da52d46714345cc1b7f95d3e62da67b2e0d10..056d3aaf863a67f37a3944643258480c565d71e2 100644 --- a/core/views/vacancies.py +++ b/core/views/vacancies.py @@ -76,8 +76,8 @@ class VacancyViewSet(MultiSerializerViewSetMixin, viewsets.ModelViewSet): self.name_position_validator(name) salary = data.get('salary') or 0 description = data['description'] - if close_time < open_time: - raise ValidationError('Waktu tutup lowongan harus lebih dari waktu buka lowongan!') + if close_time <= open_time: + raise ValidationError('Waktu tutup lowongan harus lebih dari waktu buka lowongan dan tidak sama dengan waktu pembukaan lowongan!') vacancy = Vacancy(company=company, open_time=open_time, close_time=close_time, name=name, description=description, salary=salary) if 'amount' in data: if isinstance(data['amount'], int): @@ -95,8 +95,8 @@ class VacancyViewSet(MultiSerializerViewSetMixin, viewsets.ModelViewSet): close_time = data['close_time'] name = data['name'] description = data['description'] - if close_time < open_time: - raise ValidationError('Waktu tutup lowongan harus lebih dari waktu buka lowongan!') + if close_time <= open_time: + raise ValidationError('Waktu tutup lowongan harus lebih dari waktu buka lowongan dan tidak sama dengan waktu pembukaan lowongan!') vacancy.open_time = open_time vacancy.close_time = close_time vacancy.name = name