コード例 #1
0
ファイル: test_core.py プロジェクト: atados/api
  def test_apply_volunteer_to_project_view_already_apply(self):
    """
    Unaply when apply already exists.
    """
    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)
    project = Project.objects.get(pk=project.id)
    nonprofit = Nonprofit.objects.get(user__slug="hahah")
    self.assertEqual(response.data, {'Applied'})
    self.assertEqual(response.status_code, status.HTTP_200_OK)
    self.assertEqual(project.applied_count, 1)

    # We only test if volunteer count increases, we don't test if it lowers
    # when unapplying because Nonprofit.get_volunteers and N.get_volunteers_numbers
    # doesn't filter applies by cancelled
    self.assertEqual(nonprofit.volunteer_count, 1)

    request = factory.post("/apply_volunteer_to_project/", {"project": project.id})
    force_authenticate(request, user=volunteer.user)
    response = views.apply_volunteer_to_project(request)
    project = Project.objects.get(pk=project.id)
    self.assertEqual(response.data, {'Canceled'})
    self.assertEqual(response.status_code, status.HTTP_200_OK)
    self.assertEqual(project.applied_count, 0)
コード例 #2
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)
コード例 #3
0
ファイル: test_core.py プロジェクト: atados/api
 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)
コード例 #4
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)
コード例 #5
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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)
コード例 #6
0
ファイル: helpers.py プロジェクト: atados/api
def create_nonprofit():
    address = create_address()
    u = User(googleaddress=address, is_active=True)
    u.save()
    n = Nonprofit(user=u, published=True)
    n.save()
    return n
コード例 #7
0
ファイル: test_core.py プロジェクト: atados/api
  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)

    project = Project.objects.get(pk=project.id)
    self.assertEqual(project.applied_count, 1)
コード例 #8
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)
コード例 #9
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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)
コード例 #10
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)
コード例 #11
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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)
コード例 #12
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)
コード例 #13
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)
コード例 #14
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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)
コード例 #15
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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")
コード例 #16
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")
コード例 #17
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)
コード例 #18
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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
コード例 #19
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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)
コード例 #20
0
ファイル: test_core.py プロジェクト: atados/api
  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")
コード例 #21
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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)
コード例 #22
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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))
コード例 #23
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)
コード例 #24
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))
コード例 #25
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
コード例 #26
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)
コード例 #27
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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)
コード例 #28
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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)
コード例 #29
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)
コード例 #30
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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)
コード例 #31
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)
コード例 #32
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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)
コード例 #33
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")
コード例 #34
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)
コード例 #35
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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)
コード例 #36
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)
コード例 #37
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))
コード例 #38
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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)
コード例 #39
0
ファイル: model_tests.py プロジェクト: atados/api
 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)
コード例 #40
0
ファイル: model_tests.py プロジェクト: atados/api
 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))
コード例 #41
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 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))
コード例 #42
0
ファイル: tests.py プロジェクト: fidelisrafael/atados-api
 def create_nonprofit(self):
   u = User()
   u.save()
   n = Nonprofit(user=u)
   n.save()
   return n
コード例 #43
0
 def create_nonprofit(self):
     u = User()
     u.save()
     n = Nonprofit(user=u)
     n.save()
     return n