From 579dcb422779d5bb70f0ab3d469615907d23faef Mon Sep 17 00:00:00 2001 From: Claudio Yosafat <claudioyosafat@gmail.com> Date: Sun, 6 Oct 2019 18:13:31 +0700 Subject: [PATCH 1/3] [RED] Test for create vacancy and update vacancy opening and closing time at the same day --- core/tests/test_create_vacancies.py | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/core/tests/test_create_vacancies.py b/core/tests/test_create_vacancies.py index 9d8cd65b..6d75d911 100644 --- a/core/tests/test_create_vacancies.py +++ b/core/tests/test_create_vacancies.py @@ -128,3 +128,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 -- GitLab From 5ff1343af9aea6b1ea28a1c2620c448753fccb07 Mon Sep 17 00:00:00 2001 From: Claudio Yosafat <claudioyosafat@gmail.com> Date: Sun, 6 Oct 2019 18:19:24 +0700 Subject: [PATCH 2/3] [GREEN] Change '<' to '<=' so it cannot accept on same day for opening and closing vacancy --- core/views/vacancies.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/views/vacancies.py b/core/views/vacancies.py index f51cfd3a..a274522e 100644 --- a/core/views/vacancies.py +++ b/core/views/vacancies.py @@ -57,8 +57,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 = Vacancy(company=company, open_time=open_time, close_time=close_time, name=name, description=description) if 'amount' in data: if isinstance(data['amount'], int): @@ -75,8 +75,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 -- GitLab From daa64955571ec76bf46034d500de9847b5fad8d2 Mon Sep 17 00:00:00 2001 From: Claudio Yosafat <claudioyosafat@gmail.com> Date: Mon, 7 Oct 2019 12:20:33 +0700 Subject: [PATCH 3/3] [GREEN] Solved merge request --- core/migrations/0020_merge_20191006_1737.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 core/migrations/0020_merge_20191006_1737.py diff --git a/core/migrations/0020_merge_20191006_1737.py b/core/migrations/0020_merge_20191006_1737.py new file mode 100644 index 00000000..26ff28ef --- /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 = [ + ] -- GitLab