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_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_project_date_creation(self): """ Tests Project date creation. """ u = User() u.save() n = Nonprofit(user=u, name="Nonprofit 1") n.save() p = self.create_project(n, "Project 1") now = datetime.utcnow().replace( tzinfo=pytz.timezone("America/Sao_Paulo")) self.assertTrue(isinstance(p, Project)) self.assertEqual(p.__unicode__(), "Project 1 - Nonprofit 1") self.assertTrue(datesAreEqual(p.created_date, now)) self.assertTrue(datesAreEqual(p.modified_date, now))
def create_project(self): u = User(email="*****@*****.**", name="what", slug="hahah") u.save() n = Nonprofit(user=u, name="hahah") n.save() from random import randint random = randint(1, 100) project = Project(nonprofit=n, name='name' + str(random)) project.nonprofit = n project.save() project.job = Job(start_date=datetime.now().replace( tzinfo=pytz.timezone("America/Sao_Paulo")), end_date=datetime.now().replace( tzinfo=pytz.timezone("America/Sao_Paulo"))) project.job.save() return project
def test_close_project(self): """ Tests closing project that is open. """ u = User() u.save() n = Nonprofit(user=u, name="Nonprofit 1") n.save() p = self.create_project(n, "Project 1") p.closed = False factory = APIRequestFactory() request = factory.put("/close/project/", {'project': p.id}) force_authenticate(request, user=u) response = views.close_project(request) self.assertEqual(response.data, True) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_comment_deletion(self): """ Tests Comment deletion. """ u1 = User(email="test", slug="user1") u1.save() n = Nonprofit(user=u1) n.save() p = Project(name="Project 1", nonprofit=n) p.save() u = User(email="*****@*****.**", slug="email") u.save() c = self.create_comment(p, u, "Comment nro 1") c.save() c.delete() self.assertTrue(c.deleted) self.assertTrue(c.deleted_date)
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_comment_creation(self): """ Tests Comment creation. """ u1 = User(email="test", slug="user1") u1.save() n = Nonprofit(user=u1) n.save() p = Project(name="Project 1", nonprofit=n) p.save() u = User(email="*****@*****.**", slug="email") u.save() c = self.create_comment(p, u, "Comment nro 1") c.save() now = datetime.utcnow().replace( tzinfo=pytz.timezone("America/Sao_Paulo")) self.assertTrue(isinstance(c, Comment)) self.assertEqual(c.__unicode__(), "(Project 1) [email protected]: Comment nro 1") self.assertTrue(datesAreEqual(c.created_date, now))
def create_nonprofit(self): u = User() u.save() n = Nonprofit(user=u) n.save() return n