Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 def test_apply_volunteer_to_project_view(self):
     """
 Ensure we can apply a volunteer to a project.
 """
     a = ApplyStatus(name="Candidato", id=2)
     a.save()
     u = User(email="*****@*****.**", name="test", slug="test")
     u.is_email_verified = True
     u.save()
     volunteer = Volunteer(user=u)
     volunteer.save()
     project = self.create_project()
     factory = APIRequestFactory()
     request = factory.post("/apply_volunteer_to_project/", {
         "project": project.id,
         'name': 'new name',
         'phone': '3444-3434'
     })
     force_authenticate(request, user=volunteer.user)
     response = views.apply_volunteer_to_project(request)
     self.assertEqual(response.data, {'Applied'})
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     u = User.objects.get(slug='test')
     self.assertEqual('new name', u.name)
     self.assertEqual('3444-3434', u.phone)
Ejemplo n.º 5
0
 def test_apply_volunteer_to_project_view_after_canceled(self):
     """
 Apply again after canceled.
 """
     u = User(email="*****@*****.**", name="test", slug="test")
     u.is_email_verified = True
     u.save()
     volunteer = Volunteer(user=u)
     volunteer.save()
     project = self.create_project()
     factory = APIRequestFactory()
     request = factory.post("/apply_volunteer_to_project/",
                            {"project": project.id})
     force_authenticate(request, user=volunteer.user)
     response = views.apply_volunteer_to_project(request)
     self.assertEqual(response.data, {'Applied'})
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     request = factory.post("/apply_volunteer_to_project/",
                            {"project": project.id})
     force_authenticate(request, user=volunteer.user)
     response = views.apply_volunteer_to_project(request)
     self.assertEqual(response.data, {'Canceled'})
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     request = factory.post("/apply_volunteer_to_project/",
                            {"project": project.id})
     force_authenticate(request, user=volunteer.user)
     response = views.apply_volunteer_to_project(request)
     self.assertEqual(response.data, {'Applied'})
     self.assertEqual(response.status_code, status.HTTP_200_OK)
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
 def test_volunteer_creation(self):
     """
 Test Volunteer Model.
 """
     u = User(email=self.email, slug=self.slug, name=self.name)
     v = Volunteer.create(u)
     self.assertTrue(isinstance(v, Volunteer))
     self.assertEqual(v.__unicode__(), self.name)
     self.assertEqual(v.get_type(), "VOLUNTEER")
     self.assertEqual(v.image_name("teste.jpg"),
                      "volunteer/" + self.slug + "/" + self.slug + ".jpg")
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
0
 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))
Ejemplo n.º 10
0
 def test_apply_creation(self):
     """
 Tests Apply.
 """
     u = User(name="Voluntario", slug="voluntario")
     u.save()
     v = Volunteer(user=u)
     v.save()
     p = Project(name="Project")
     a = Apply(status=ApplyStatus(), volunteer=v, project=p)
     self.assertTrue(isinstance(a, Apply))
     self.assertEqual(a.__unicode__(), "[False] Voluntario - Project")
Ejemplo n.º 11
0
 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)
Ejemplo n.º 12
0
 def test_apply_volunteer_to_project_view_without_project(self):
     """
 Apply volunteer to project without project id.
 """
     u = User(email="*****@*****.**", name="test", slug="test")
     u.is_email_verified = True
     u.save()
     volunteer = Volunteer(user=u)
     volunteer.save()
     factory = APIRequestFactory()
     request = factory.post("/apply_volunteer_to_project/", {"project": ''})
     force_authenticate(request, user=volunteer.user)
     response = views.apply_volunteer_to_project(request)
     self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 13
0
 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))
Ejemplo n.º 14
0
 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
Ejemplo n.º 15
0
 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)
Ejemplo n.º 16
0
 def test_apply_volunteer_to_project_view_without_auth(self):
     """
 Apply no volunteer to a project.
 """
     a = ApplyStatus(name="Candidato", id=2)
     a.save()
     u = User(email="*****@*****.**", name="test", slug="test")
     u.save()
     volunteer = Volunteer(user=u)
     volunteer.save()
     project = self.create_project()
     factory = APIRequestFactory()
     request = factory.post("/apply_volunteer_to_project/",
                            {"project": project.id})
     response = views.apply_volunteer_to_project(request)
     self.assertEqual(response.data, {"No user logged in."})
     self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
Ejemplo n.º 17
0
 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)
Ejemplo n.º 18
0
 def test_apply_volunteer_to_project_view_not_verified(self):
     """
 Apply a volunteer not verified to a project.
 """
     a = ApplyStatus(name="Candidato", id=2)
     a.save()
     u = User(email="*****@*****.**", name="test", slug="test")
     u.save()
     volunteer = Volunteer(user=u)
     volunteer.save()
     project = self.create_project()
     factory = APIRequestFactory()
     request = factory.post("/apply_volunteer_to_project/",
                            {"project": project.id})
     force_authenticate(request, user=volunteer.user)
     response = views.apply_volunteer_to_project(request)
     self.assertEqual(
         response.data,
         {"403": "Volunteer has not actived its account by email."})
     self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
Ejemplo n.º 19
0
 def create_nonprofit(self):
     u = User()
     u.save()
     n = Nonprofit(user=u)
     n.save()
     return n