def test_create_two_project_same_slug(self): """ Creating two projects with same name to see if different slugs are created.. """ factory = APIRequestFactory() project = { 'name': "Name", 'details': 'This needs to be big', 'description': 'This needs to be big', 'responsible': 'Marjor', 'phone': '123123', 'email': '*****@*****.**', 'skills': [1], 'causes': [2], 'job': { 'start_date': 20140416, 'end_date': 20140417 } } u = User() u.save() n = Nonprofit(user=u) n.save() request = factory.post("/create/project/", {'project': project}) force_authenticate(request, user=u) response = views.create_project(request) self.assertEqual(response.status_code, status.HTTP_201_CREATED) request = factory.post("/create/project/", {'project': project}) force_authenticate(request, user=u) response = views.create_project(request) self.assertEqual(response.data['detail'], 'Project succesfully created.') self.assertEqual(response.status_code, status.HTTP_201_CREATED)
def test_create_project_view_with_only_required_fields_job(self): """ Project job with only required fields and no availabilites. """ factory = APIRequestFactory() project = { 'name': "Name", 'details': 'This needs to be big', 'description': 'This needs to be big', 'responsible': 'Marjor', 'phone': '123123', 'email': '*****@*****.**', 'skills': [1], 'causes': [2], 'job': { 'start_date': 20140416, 'end_date': 20140417 } } request = factory.post("/create/project/", {'project': project}) u = User() u.save() n = Nonprofit(user=u) n.save() force_authenticate(request, user=u) response = views.create_project(request) self.assertEqual(response.data['detail'], 'Project succesfully created.') self.assertEqual(response.status_code, status.HTTP_201_CREATED)
def test_create_project_view_with_only_required_fields_but_no_work_or_job( self): """ Project with only required fields but no work or job. """ factory = APIRequestFactory() project = { 'name': "Name", 'details': 'This needs to be big', 'description': 'This needs to be big', 'responsible': 'Marjor', 'phone': '123123', 'email': '*****@*****.**', 'skills': [1], 'causes': [2] } request = factory.post("/create/project/", {'project': project}) u = User() u.save() n = Nonprofit(user=u) n.save() force_authenticate(request, user=u) response = views.create_project(request) self.assertEqual(response.data, {'detail': 'Needs to have project or work.'}) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_project_view_with_only_required_fields_work(self): """ Project work with only required fields and no availabilites. """ factory = APIRequestFactory() project = { 'name': "Name", 'details': 'This needs to be big', 'description': 'This needs to be big', 'responsible': 'Marjor', 'phone': '11987456321', 'email': '*****@*****.**', 'skills': [{'id': 1}], 'causes': [{'id': 1}], 'work': { 'weekly_hours': 1, 'can_be_done_remotely': True } } request = factory.post("/create/project/", {'project': json.dumps(project)}) u = User() u.save() n = Nonprofit(user=u) n.save() force_authenticate(request, user=u) response = views.create_project(request) self.assertEqual(response.data['detail'], 'Project succesfully created.') self.assertEqual(response.status_code, status.HTTP_201_CREATED)
def test_create_project_view_not_authenticated(self): """ Project with no authenticated user. """ factory = APIRequestFactory() request = factory.post("/create/project/", {"project": ""}) response = views.create_project(request) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_create_project_view_not_nonprofit_authenticated(self): """ Project with user that is not nonprofit. """ factory = APIRequestFactory() request = factory.post("/create/project/", {"project": ""}) u = User() u.save() force_authenticate(request, user=u) response = views.create_project(request) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_create_project_view_bad_request(self): """ Project with bad data being sent. """ factory = APIRequestFactory() request = factory.post("/create/project/", {"project": ""}) u = User() u.save() n = Nonprofit(user=u) n.save() force_authenticate(request, user=u) response = views.create_project(request) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_create_project_view_to_test_address_creation(self): """ Project to test address creation. """ skill = Skill(name="Programming") skill.save() cause = Cause(name="Atados") cause.save() factory = APIRequestFactory() project = { 'name': "Name", 'details': 'This needs to be big', 'description': 'This needs to be big', 'responsible': 'Marjor', 'phone': '11987456321', 'email': '*****@*****.**', 'skills': [{'id': 1}], 'causes': [{'id': 1}], 'work': { 'weekly_hours': 1, 'can_be_done_remotely': True }, 'address': { 'addr': { 'formatted_address': 'R. Capote Valente, 701, São Paulo' }, 'typed_address2': 'Complemento' } } s = State(name="sao paulo") s.save() c = City(id=9422, name="sao paulo", state=s) c.save() request = factory.post("/create/project/", {'project': json.dumps(project)}) u = User() u.save() n = Nonprofit(user=u) n.save() force_authenticate(request, user=u) response = views.create_project(request) self.assertEqual(response.status_code, status.HTTP_201_CREATED) p = Project.objects.all()[0] self.assertEqual(p.phone, "11987456321") self.assertEqual(p.name, "Name") self.assertTrue(p.googleaddress) self.assertEqual(p.googleaddress.typed_address, u"R. Capote Valente, 701, São Paulo") self.assertEqual(p.googleaddress.typed_address2, u"Complemento")
def test_create_project_view_to_test_address_creation(self): """ Project to test address creation. """ factory = APIRequestFactory() project = { 'name': "Name", 'details': 'This needs to be big', 'description': 'This needs to be big', 'responsible': 'Marjor', 'phone': '123123', 'email': '*****@*****.**', 'skills': [1], 'causes': [2], 'work': { 'weekly_hours': 1, 'can_be_done_remotely': True }, 'address': { 'addressline': 'Rua Test', 'addressnumber': 234, 'neighborhood': 'Bairro', 'zipcode': '13230-455', 'city': { 'id': 9422 } } } s = State(name="sdfsdf") s.save() c = City(id=9422, name="sao paulo", state=s) c.save() request = factory.post("/create/project/", {'project': project}) u = User() u.save() n = Nonprofit(user=u) n.save() force_authenticate(request, user=u) response = views.create_project(request) self.assertEqual(response.status_code, status.HTTP_201_CREATED) p = Project.objects.all()[0] self.assertEqual(p.phone, "123123") self.assertEqual(p.name, "Name") self.assertTrue(p.address)
def test_create_project_view_to_test_address_creation(self): """ Project to test address creation. """ factory = APIRequestFactory() project = { 'name': "Name", 'details': 'This needs to be big', 'description': 'This needs to be big', 'responsible': 'Marjor', 'phone': '123123', 'email': '*****@*****.**', 'skills': [1], 'causes': [2], 'work': { 'weekly_hours': 1, 'can_be_done_remotely': True }, 'address': { 'addressline': 'Rua Test', 'addressnumber': 234, 'neighborhood': 'Bairro', 'zipcode': '13230-455', 'city': {'id': 9422} } } s = State(name="sdfsdf") s.save() c = City(id=9422, name="sao paulo", state=s) c.save() request = factory.post("/create/project/", {'project': project}) u = User() u.save() n = Nonprofit(user=u) n.save() force_authenticate(request, user=u) response = views.create_project(request) self.assertEqual(response.status_code, status.HTTP_201_CREATED) p = Project.objects.all()[0] self.assertEqual(p.phone, "123123") self.assertEqual(p.name, "Name") self.assertTrue(p.address)
def test_create_project_view_with_only_required_fields_but_no_work_or_job(self): """ Project with only required fields but no work or job. """ factory = APIRequestFactory() project = { 'name': "Name", 'details': 'This needs to be big', 'description': 'This needs to be big', 'responsible': 'Marjor', 'phone': '123123', 'email': '*****@*****.**', 'skills': [1], 'causes': [2] } request = factory.post("/create/project/", {'project': project}) u = User() u.save() n = Nonprofit(user=u) n.save() force_authenticate(request, user=u) response = views.create_project(request) self.assertEqual(response.data, {'detail': 'Needs to have project or work.'}) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)