Beispiel #1
0
 def create_and_login_user(self):
     url_name = "auth_views.login"
     headers = self.get_csrf_headers(url_name)
     u = UserFactory(email='*****@*****.**')
     u.password = "******"
     user_data = {'email': '*****@*****.**', 'password': '******'}
     data, status = self.post_data(url_name, user_data, headers)
     return data['user']
Beispiel #2
0
    def _test_set_due_time_permissions(self, card, get_progress):
        recruit = UserFactory()

        staff_member = UserFactory(is_staff=True)

        card.assignees.add(recruit)

        due_time_1 = timezone.now() + timedelta(days=7)
        due_time_2 = timezone.now() + timedelta(days=1)

        url = reverse("agilecard-set-card-due-time", kwargs={"pk": card.id})

        self.login(UserFactory())

        response = self.client.post(url, data={"due_time": due_time_1})

        self.assertEqual(response.status_code, 403)
        self.assertEqual(response.data["detail"].code, "permission_denied")

        self.login(recruit)

        response = self.client.post(url, data={"due_time": due_time_1})

        self.assertEqual(response.status_code, 200)

        card.refresh_from_db()
        progress = get_progress(card)

        self.assertEqual(progress.due_time.strftime("%c"),
                         due_time_1.strftime("%c"))

        response = self.client.post(url, data={"due_time": due_time_1})

        self.assertEqual(response.status_code, 403)
        self.assertEqual(response.data["detail"].code, "permission_denied")

        self.login(staff_member)
        response = self.client.post(url, data={"due_time": due_time_2})

        self.assertEqual(response.status_code, 200)

        progress.refresh_from_db()
        self.assertEqual(progress.due_time.strftime("%c"),
                         due_time_2.strftime("%c"))
def test_get_company_users(client):
    """
    Тест получения списка сотрудников компании
    """

    company = CompanyFactory()
    user1 = UserFactory(companies=[company])
    user2 = UserFactory(companies=[company])
    token = AuthToken.objects.create(user1)[1]

    session = client.session
    session['current_company_id'] = company.pk
    session.save()

    response = client.get(reverse('get_company_users'),
                          HTTP_AUTHORIZATION=f'Token {token}')

    assert response.status_code == 200
    assert len(response.data) == 2
Beispiel #4
0
    def test_users_can_view_their_own_burndown_snapshot_objects(self):
        burndown_snapshot_object = factories.BurndownSnapshotFactory(
            user=UserFactory(is_superuser=False, is_staff=False))
        self.login(burndown_snapshot_object.user)
        response = self.client.get(
            f"{self.api_url}?user__id={burndown_snapshot_object.user.id}")

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data[0].get("user"),
                         burndown_snapshot_object.user.id)
Beispiel #5
0
    def test_existing_user_gets_logged_in(self, get_email_from_one_time_code):
        user = UserFactory()
        user = User.objects.get(email=user.email)
        get_email_from_one_time_code.return_value = user.email
        # breakpoint()
        response = self.make_request()

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        token_value = response.data["token"]
        Token.objects.get(key=token_value)
 def test_user_with_permission_can_view_admin_reports_link(self):
     u = UserFactory.create_and_login(self.client)
     u.user_permissions.add(
         Permission.objects.get(codename='read_cvn_reports'))
     u.user_permissions.add(
         Permission.objects.get(codename='read_admin_menu'))
     u.save()
     soup = BeautifulSoup(self.client.get(reverse('cvn')).content, 'lxml')
     reports_link = soup.select('a#admin_reports_link')
     self.assertEqual(len(reports_link), 1)
Beispiel #7
0
def test_avatar_upload(client):
    """
    Тест загрузки аватарки
    """

    user = UserFactory()
    token = AuthToken.objects.create(user)[1]

    path = os.path.join(settings.BASE_DIR, 'core', 'tests', 'fixtures', "test_avatar.png")
    data = {
        'pk': user.pk,
        'file': open(path, 'rb'),
    }
    response = client.post(reverse('avatar-upload'), data=data, HTTP_AUTHORIZATION=f'Token {token}')

    user.refresh_from_db()

    assert user.avatar is not None
    assert response.status_code == 200
Beispiel #8
0
 def test_form_valid(self):
     user = UserFactory()
     form = ProjectForm(data={'name': 'Hello World!'})
     self.assertTrue(form.is_valid())
     project = form.save(commit=False)
     project.owner = user
     project.save()
     self.assertEqual(project.name, 'Hello World!')
     self.assertEqual(project.owner, user)
     self.assertIsNotNone(project.created)
     self.assertIsNotNone(project.modified)
Beispiel #9
0
    def test_no_tilde_reviews_done_in_last_7_days(self):
        user = UserFactory()

        # add a review, but it's too old to count
        review = RecruitProjectReviewFactory(timestamp=self.two_weeks_ago,
                                             reviewer_user=user)
        review.timestamp = self.two_weeks_ago
        review.save()
        AgileCardFactory(recruit_project=review.recruit_project)
        count = self.stats_serializer.get_tilde_reviews_done_last_7_days(user)
        self.assertEqual(count, 0)
def test_login(client):
    """
    Тест аутентификации пользователя
    """

    data = {
        'email': '*****@*****.**',
        'password': '******',
    }
    UserFactory(email=data['email'], password=data['password'])
    response = client.post(reverse('login'), data=data)
    assert response.status_code == 200
Beispiel #11
0
    def test_get_instance_permissions(self):
        attendee_user = UserFactory(is_superuser=False, is_staff=False)
        workshop_attendance = factories.WorkshopAttendanceFactory(
            content_item=factories.ContentItemFactory(
                content_type=ContentItem.WORKSHOP),
            timestamp=timezone.now(),
            attendee_user=attendee_user,
        )

        self.login(attendee_user)
        url = self.get_list_url()
        response = self.client.get(f"{url}{workshop_attendance.id}",
                                   follow=True)
        self.assertEqual(response.status_code, 200)

        random_human = UserFactory(is_superuser=False, is_staff=False)
        self.login(random_human)
        response = self.client.get(f"{url}{workshop_attendance.id}",
                                   follow=True)
        self.assertEqual(response.status_code, 403)
        self.assertEqual(response.data["detail"].code, "permission_denied")
Beispiel #12
0
    def setUp(self):
        self.project = ProjectFactory()
        self.project.save()

        # make some users
        self.admin_user = UserFactory()
        self.project.administrators.add(self.admin_user)

        # get a default response
        self.url = self.project.get_edit_url()
        self.client.force_login(self.admin_user)
        self.response = self.client.get(self.url)
 def test_delete_producciones(self):
     user = UserFactory.create()
     cvn = CVN(user=user, pdf_path=get_cvn_path('CVN-Test'))
     cvn.insert_xml()
     cvn.remove_producciones()
     self.assertEqual(user.profile.articulo_set.count(), 0)
     self.assertEqual(user.profile.capitulo_set.count(), 0)
     self.assertEqual(user.profile.congreso_set.count(), 0)
     self.assertEqual(user.profile.convenio_set.count(), 0)
     self.assertEqual(user.profile.libro_set.count(), 0)
     self.assertEqual(user.profile.proyecto_set.count(), 0)
     self.assertEqual(user.profile.tesisdoctoral_set.count(), 0)
 def test_insert_xml_ull(self):
     """ Insert the data of XML in the database """
     user = UserFactory.create()
     cvn = CVN(user=user, pdf_path=get_cvn_path('CVN-ULL'))
     cvn.insert_xml()
     self.assertEqual(user.profile.articulo_set.count(), 1214)
     self.assertEqual(user.profile.libro_set.count(), 6)
     self.assertEqual(user.profile.capitulo_set.count(), 32)
     self.assertEqual(user.profile.congreso_set.count(), 55)
     self.assertEqual(user.profile.convenio_set.count(), 38)
     self.assertEqual(user.profile.proyecto_set.count(), 11)
     self.assertEqual(user.profile.tesisdoctoral_set.count(), 0)
def test_api_users_select(client):
    """
    Тест получения options для select-а с пользователями
    """

    user = UserFactory(name='user_aaa')
    token = AuthToken.objects.create(user)[1]

    UserFactory(name='user_bbb')
    UserFactory(name='user_bb_aa')

    data = {
        'q': 'bb',
    }

    response = client.get(reverse('api-users-select'),
                          data=data,
                          HTTP_AUTHORIZATION=f'Token {token}')

    assert response.status_code == 200
    assert len(response.data) == 2
Beispiel #16
0
    def test_new_project_link(self, client):
        """A 'new project' link should be shown if logged-in user is authorized,
        otherwise hidden."""

        link_html = '<a href="/proj_create"'
        project_index_url = reverse('project_list')

        client.logout()
        assert link_html not in client.get(project_index_url).rendered_content

        client.force_login(UserFactory())
        assert link_html in client.get(project_index_url).rendered_content
Beispiel #17
0
    def test_set_project_link(self):

        content_item = factories.ContentItemFactory(
            content_type=ContentItem.PROJECT,
            project_submission_type=ContentItem.LINK)

        recruit = UserFactory(is_superuser=False, is_staff=False)

        card = factories.AgileCardFactory(content_item=content_item,
                                          # content_type= ContentItem.PROJECT,
                                          )

        card.assignees.add(recruit)

        url = f"{self.get_list_url()}{card.id}/set_project_link/"

        link_1 = "https://wnning.com"
        link_2 = "https://wnning.com/boom"
        self.login(recruit)

        response = self.client.post(url, data={"link_submission": link_1})
        self.assertEqual(response.status_code, 200)

        project = card.recruit_project
        project.refresh_from_db()
        self.assertEqual(project.link_submission, link_1)

        response = self.client.post(url, data={"link_submission": link_2})
        project.refresh_from_db()
        self.assertEqual(project.link_submission, link_2)

        other_recruit = UserFactory(is_superuser=False, is_staff=False)

        self.login(other_recruit)
        response = self.client.post(url, data={"link_submission": link_1})
        self.assertEqual(response.status_code, 403)
        self.assertEqual(response.data["detail"].code, "permission_denied")

        project.refresh_from_db()
        self.assertEqual(project.link_submission, link_2)
Beispiel #18
0
class has_perm_Tests(TestCase):
    def setUp(self):
        self.user = UserFactory(is_superuser=False)
        self.team = TeamFactory()

    def test_returns_correctly_when_assigning_permissions_to_users(self):

        self.assertEqual(
            self.user.has_perm(Team.PERMISSION_ASSIGN_REVIEWERS, self.team), False
        )
        self.assertEqual(
            self.user.has_perm(Team.PERMISSION_MANAGE_CARDS, self.team), False
        )

        assign_perm(Team.PERMISSION_MANAGE_CARDS, self.user, self.team)

        self.assertEqual(
            self.user.has_perm(Team.PERMISSION_ASSIGN_REVIEWERS, self.team), False
        )
        self.assertEqual(
            self.user.has_perm(Team.PERMISSION_MANAGE_CARDS, self.team), True
        )

    def test_returns_correctly_when_assigning_permissions_to_managing_team(self):

        managment_team = TeamFactory()
        managment_team.users.add(self.user)

        assign_perm(Team.PERMISSION_MANAGE_CARDS, managment_team, self.team)
        self.assertEqual(
            self.user.has_perm(Team.PERMISSION_ASSIGN_REVIEWERS, self.team), False
        )
        self.assertEqual(
            self.user.has_perm(Team.PERMISSION_MANAGE_CARDS, self.team), True
        )
 def test_user_without_permission_can_view_reports(self):
     u = UserFactory.create_and_login(self.client)
     Department.objects.create(code=4987,
                               name="dept1",
                               members=[],
                               commit=True)
     Area.objects.create(code=4987, name="area1", members=[], commit=True)
     session = self.client.session  # session has to be put in a variable
     session['dept_code'] = 4987
     session['area_code'] = 4987
     session.save()
     response = self.client.get(reverse('reports'))
     self.assertEqual(response.status_code, 200)
Beispiel #20
0
def test_get_task(client):
    """
    Тест получения данных по задаче
    """

    user1 = UserFactory()
    token = AuthToken.objects.create(user1)[1]

    task = TaskFactory()

    response = client.get(reverse('get-task-detail', args=(task.pk, )), HTTP_AUTHORIZATION=f'Token {token}')

    assert response.status_code == 200
Beispiel #21
0
    def test_add_remove(self):
        user = UserFactory()
        context = ExecutionContext(user=user,
                                   plugin=self.plugin_info['1']['plugin'])
        manager = PluginManager(context)

        # This should be 1 because we have just added a plugin for the user.
        plugin_key = self.plugin_info['1']['plugin'].hashkey
        manager.add(plugin_key)
        self.assertEqual(len(user.plugins), 1)

        manager.remove(plugin_key)
        self.assertEqual(len(user.plugins), 0)
Beispiel #22
0
 def test_account_detail_api_view_not_owner(self):
     """
     Ensure API view will return 404 status code to request with methods:
     GET, PUT, DELETE, if requested account does not
     belongs to authenticated user.
     """
     another_user = UserFactory()
     account = AccountFactory(manager=another_user)
     self.run_method_status_code_check(
         url=self.urls['account_detail'](kwargs={
             'pk': account.pk
         }),
         methods=['get', 'put', 'delete'],
         status_code=status.HTTP_404_NOT_FOUND)
def test_invite_user(client):
    """
    Тест приглашения пользователя
    """

    company = CompanyFactory()
    user_one = UserFactory(companies=[company])
    token = AuthToken.objects.create(user_one)[1]

    user_two = UserFactory()

    data = {'email': user_two.email}

    session = client.session
    session['current_company_id'] = company.pk
    session.save()

    response = client.post(reverse('invite-user'),
                           data=data,
                           HTTP_AUTHORIZATION=f'Token {token}')

    assert response.status_code == 200
    assert user_two.companies.filter(pk=company.pk).exists()
Beispiel #24
0
 def test_on_insert_cvn_old_pdf_is_moved(self):
     user = UserFactory.create()
     cvn = CVN(user=user, pdf_path=get_cvn_path('CVN-Test'))
     cvn.save()
     filename = cvn.cvn_file.name.split('/')[-1].replace(
         u'.pdf', u'-' +
         str(cvn.uploaded_at.strftime('%Y-%m-%d-%Hh%Mm%Ss')) + u'.pdf')
     old_cvn_path = os.path.join(
         '/'.join(cvn.cvn_file.path.split('/')[:-1]), 'old', filename)
     CVN(user=user, pdf_path=get_cvn_path('CVN-Test'))
     self.assertTrue(os.path.isfile(old_cvn_path))
     self.assertEqual(
         OldCvnPdf.objects.filter(user_profile=user.profile,
                                  uploaded_at=cvn.uploaded_at).count(), 1)
Beispiel #25
0
    def test_annotating_with_total_norms_empty(self):
        user = UserFactory()

        DailyIntakesReportFactory(user=user)

        annotated_daily_report = DailyIntakesReport.filter_for_user(
            user).annotate_with_nutrient_totals().first()

        self.assertEqual(annotated_daily_report.total_potassium_mg, 0)
        self.assertEqual(annotated_daily_report.total_sodium_mg, 0)
        self.assertEqual(annotated_daily_report.total_phosphorus_mg, 0)
        self.assertEqual(annotated_daily_report.total_proteins_mg, 0)
        self.assertEqual(annotated_daily_report.total_energy_kcal, 0)
        self.assertEqual(annotated_daily_report.total_liquids_ml, 0)
    def test_recover_password_two(self, mocker, client) -> None:
        """
        Тест удачного создания письма
        """

        user1 = UserFactory()

        data = {
            'email': user1.email,
        }
        response = client.post(reverse('recover-password'), data=data)
        assert response.status_code == 200

        email = Email.objects.first()
        assert email is not None
 def test_user_without_permission_cant_download_rcsv(self):
     u = UserFactory.create_and_login(self.client)
     session = self.client.session  # session has to be put in a variable
     session['dept_code'] = 4987
     session['area_code'] = 4987
     session.save()
     self._create_dept_and_area_fake('2014', 4987, 'rcsv')
     response = self.client.get(
         reverse('download_report',
                 kwargs={
                     'type': 'rcsv',
                     'year': '2014',
                     'unit_type': 'dept'
                 }))
     self.assertEqual(response.status_code, 404)
Beispiel #28
0
    def test_add_RED_FLAG_review(self):
        self.card.content_item.topic_needs_review = True
        self.card.content_item.save()
        self.card.start_topic()
        self.card.finish_topic()

        self.assertEqual(self.card.status, AgileCard.IN_REVIEW)

        review = TopicReview.objects.create(
            status=RED_FLAG,
            topic_progress=self.card.topic_progress,
            reviewer_user=UserFactory(),
        )
        self.card.refresh_from_db()
        self.assertEqual(self.card.status, AgileCard.REVIEW_FEEDBACK)
    def fill_db(self, range):
        for i in range:
            u = UserFactory.create()
            u.profile.rrhh_code = i
            u.profile.save()

            a = Articulo(titulo="ArtName" + str(i),
                         fecha=datetime.date(randint(2012, 2014), 1, 1))
            a.save()
            a.user_profile.add(u.profile)

            a = Capitulo(titulo="CapName" + str(i),
                         fecha=datetime.date(randint(2012, 2014), 1, 1))
            a.save()
            a.user_profile.add(u.profile)

            a = Libro(titulo="LibName" + str(i),
                      fecha=datetime.date(randint(2012, 2014), 1, 1))
            a.save()
            a.user_profile.add(u.profile)

            a = Congreso(titulo="ConName" + str(i),
                         fecha_de_inicio=datetime.date(randint(2012, 2014), 1,
                                                       1))
            a.save()
            a.user_profile.add(u.profile)

            a = Convenio(titulo="ConvName" + str(i),
                         fecha_de_inicio=datetime.date(randint(2012, 2014), 1,
                                                       1))
            a.save()
            a.user_profile.add(u.profile)

            a = Patente(titulo="PatName" + str(i),
                        fecha=datetime.date(randint(2012, 2014), 1, 1))
            a.save()
            a.user_profile.add(u.profile)

            a = Proyecto(titulo="ProName" + str(i),
                         fecha_de_inicio=datetime.date(randint(2012, 2014), 1,
                                                       1))
            a.save()
            a.user_profile.add(u.profile)

            a = TesisDoctoral(titulo="TesisName" + str(i),
                              fecha=datetime.date(randint(2012, 2014), 1, 1))
            a.save()
            a.user_profile.add(u.profile)
Beispiel #30
0
    def test_is_authenticated_refresh_required(self):
        """ Test our custom User.is_authenticated property. """

        # create past
        past = timezone.now() - timezone.timedelta(days=1)

        # create a user who token has expired
        user_with_tokens = UserFactory.create(
            username='******', email='*****@*****.**', access_token='1',
            refresh_token='2', token_expiry=past)

        # adding this because of random No route to host errors
        with mock.patch(
                'accounts.models.OAuth2Credentials') as mock_oauth:
            mock_oauth.return_value = MockCredentials(access_token='foo')
            self.assertTrue(user_with_tokens.is_authenticated)
Beispiel #31
0
    def test_daily_norms_calculation_hemodialysis(self):
        user = UserFactory()
        profile = UserProfile(user=user,
                              dialysis=DialysisType.Hemodialysis,
                              date_of_birth=date(1960, 1, 1),
                              height_cm=180,
                              diabetes_type=DiabetesType.Type1)

        calculator = AdultDailyNormsCalculator(profile, urine_ml=123)

        self.assertEqual(calculator.calculate_potassium_mg(), 3123)
        self.assertEqual(calculator.calculate_proteins_mg(), 93677)
        self.assertEqual(calculator.calculate_sodium_mg(), 2300)
        self.assertEqual(calculator.calculate_phosphorus_mg(), 1000)
        self.assertIsNone(calculator.calculate_energy_kcal())
        self.assertEqual(calculator.calculate_liquids_g(), 1123)