예제 #1
0
    def test_plan_restrictions(self):
        corp_account = CorporateAccountFactory.create()
        corp_user = UserFactory.create(account=corp_account)

        plan_1 = PlanFactory()
        plan_2 = PlanFactory()
        plan_3 = PlanFactory()

        account_1 = AccountFactory(plan=plan_1)
        account_2 = AccountFactory(plan=plan_2)
        account_3 = AccountFactory(plan=plan_3)

        user_1 = UserFactory(account=account_1)
        user_2 = UserFactory(account=account_2)
        user_3 = UserFactory(account=account_3)

        flight = FlightFactory(departure=arrow.now().replace(days=+12).datetime)

        self.assertTrue(flight.check_plan_restrictions(corp_user), 'always allow corp users')

        self.assertTrue(flight.check_plan_restrictions(user_1), 'no plan restrictions')
        self.assertTrue(flight.check_plan_restrictions(user_2), 'no plan restrictions')
        self.assertTrue(flight.check_plan_restrictions(user_3), 'no plan restrictions')

        FlightPlanRestrictionFactory(flight=flight, plan=plan_1, days=2)
        FlightPlanRestrictionFactory(flight=flight, plan=plan_2, days=12)
        FlightPlanRestrictionFactory(flight=flight, plan=plan_3, days=16)

        self.assertTrue(flight.check_plan_restrictions(corp_user), 'always allow corp users')

        self.assertFalse(flight.check_plan_restrictions(user_1), 'only 2 days out')
        self.assertTrue(flight.check_plan_restrictions(user_2), 'just now')
        self.assertTrue(flight.check_plan_restrictions(user_3), 'been good')

        flight.departure = arrow.now().replace(days=+13).datetime
        flight.save()

        self.assertTrue(flight.check_plan_restrictions(corp_user), 'always allow corp users')

        self.assertFalse(flight.check_plan_restrictions(user_1), 'only 2 days out')
        self.assertFalse(flight.check_plan_restrictions(user_2), 'just now')
        self.assertTrue(flight.check_plan_restrictions(user_3), 'been good')

        flight.departure = arrow.now().replace(days=+16).datetime
        flight.save()

        self.assertTrue(flight.check_plan_restrictions(corp_user), 'always allow corp users')

        self.assertFalse(flight.check_plan_restrictions(user_1), 'only 2 days out')
        self.assertFalse(flight.check_plan_restrictions(user_2), 'just now')
        self.assertTrue(flight.check_plan_restrictions(user_3), 'been good')

        flight.departure = arrow.now().replace(days=+17).datetime
        flight.save()

        self.assertTrue(flight.check_plan_restrictions(corp_user), 'always allow corp users')

        self.assertFalse(flight.check_plan_restrictions(user_1), 'only 2 days out')
        self.assertFalse(flight.check_plan_restrictions(user_2), 'just now')
        self.assertFalse(flight.check_plan_restrictions(user_3), 'been good')
예제 #2
0
 def setUp(self):
     self.test_user = UserFactory(username='******')
     self.test_user_2 = UserFactory(username='******')
     self.public_guide_1 = GuideFactory(owner=self.test_user, private=False, name='Public Crane')
     self.public_guide_2 = GuideFactory(owner=self.test_user_2, private=False, name='Public Paper')
     self.private_guide_1 = GuideFactory(owner=self.test_user, private=True, name='Private')
     self.private_guide_2 = GuideFactory(owner=self.test_user_2, private=True, name='Private 2')
예제 #3
0
    def setUp(self):
        self.category = CategoryFactory()
        self.user = UserFactory(
            email='*****@*****.**',
            password='******',
            is_superuser=True,
            category=self.category
        )
        self.other_user = UserFactory(
            email='*****@*****.**',
            password='******',
        )
        self.client.login(email=self.user.email, password='******')

        doc = DocumentFactory(
            document_key='test_key',
            category=self.category,
            revision={
                'reviewers': [],
                'leader': self.user,
                'received_date': datetime.date.today(),
            }
        )
        revision = doc.latest_revision
        revision.start_review()

        self.review = revision.get_review(self.user)
        self.url = self.review.get_comments_url()

        pdf_doc = 'sample_doc_pdf.pdf'
        self.sample_pdf = SimpleUploadedFile(pdf_doc, b'content')
예제 #4
0
    def setUp(self):
        Model = ContentType.objects.get_for_model(ContractorDeliverable)
        self.category = CategoryFactory(category_template__metadata_model=Model)

        self.user = UserFactory(
            email='*****@*****.**',
            password='******',
            is_superuser=True,
            category=self.category)
        self.user2 = UserFactory(
            email='*****@*****.**',
            password='******',
            is_superuser=True,
            category=self.category)
        self.user3 = UserFactory(
            email='*****@*****.**',
            password='******',
            is_superuser=True,
            category=self.category)

        self.data = {
            'docclass': 3,
            'purpose_of_issue': 'FR',
            'created_on': '2015-01-01',
            'received_date': '2015-01-01'
        }
예제 #5
0
def test_matters_assistant_name_filter(snapshot, request):
    """ Test matters assistant name filter """

    user_instance = UserFactory(first_name='first', last_name='last')

    MatterFactory.create_batch(
        size=5,
        assistant=user_instance,
    )

    staff_member = UserFactory(id=1)
    request.user = staff_member

    client = Client(schema, context=request)
    query = client.execute("""
        query getMatters($assistantName: String) {
            matters(first: 3, assistantName: $assistantName) {
                edges {
                    node {
                        id
                        name
                        client {
                            id
                            name
                        }
                        billableStatus
                    }
                }
            }
        }
    """,
                           variable_values={
                               'assistantName': user_instance.full_name,
                           })
    snapshot.assert_match(query)
예제 #6
0
    def setUp(self):
        self.category = CategoryFactory()
        user = UserFactory(
            email='*****@*****.**',
            password='******',
            is_superuser=True,
            category=self.category)
        self.client.login(email=user.email, password='******')

        user2 = UserFactory(email='*****@*****.**', category=self.category)

        doc = DocumentFactory(
            document_key='hazop-report-1',
            category=self.category,
            revision={
                'leader': user,
            }

        )
        doc.latest_revision.start_review()

        for _ in range(5):
            for u in (user, user2):
                NoteFactory(
                    author=u,
                    document=doc,
                    revision=1)

        review_url = reverse('review_document', args=[doc.document_key])
        self.url = '%s%s' % (self.live_server_url, review_url)
        self.test_file = os.path.join(
            os.path.dirname(__file__),
            'casper_tests',
            'tests.js'
        )
예제 #7
0
    def setUp(self):
        super().setUp()
        Model = ContentType.objects.get_for_model(ContractorDeliverable)
        self.cat1 = CategoryFactory(category_template__metadata_model=Model)
        self.cat2 = CategoryFactory(category_template__metadata_model=Model)

        self.user1 = UserFactory(
            email='*****@*****.**',
            password='******',
            is_superuser=True,
            category=self.cat1,
            send_behind_schedule_alert_mails=True)
        self.user1.categories.add(self.cat2)
        self.user2 = UserFactory(
            email='*****@*****.**',
            password='******',
            is_superuser=True,
            category=self.cat2,
            send_behind_schedule_alert_mails=True)

        self.doc1 = DocumentFactory(
            category=self.cat1,
            metadata_factory_class=ContractorDeliverableFactory,
            revision_factory_class=ContractorDeliverableRevisionFactory)
        self.doc2 = DocumentFactory(
            category=self.cat2,
            metadata_factory_class=ContractorDeliverableFactory,
            revision_factory_class=ContractorDeliverableRevisionFactory)

        populate_values_list_cache()
예제 #8
0
    def setUpTestData(cls):
        employer_group = Group.objects.get(id=Groups.employer)
        employee_group = Group.objects.get(id=Groups.employee)
        managing_group = Group.objects.get(id=Groups.management)

        cls.companyA = CompanyFactory()
        cls.companyB = CompanyFactory()

        cls.employerA = UserFactory(group=employer_group)
        cls.employeeA = UserFactory(group=employee_group)

        cls.employerB = UserFactory(group=employer_group)
        cls.employeeB = UserFactory(group=employee_group)

        cls.management = UserFactory(group=managing_group)

        cls.employee_a_token = AuthFactory(user=cls.employeeA)
        cls.employer_a_token = AuthFactory(user=cls.employerA)
        cls.employee_b_token = AuthFactory(user=cls.employeeB)
        cls.employer_b_token = AuthFactory(user=cls.employerB)
        cls.management_token = AuthFactory(user=cls.management)

        MemberFactory(account=cls.employerA, company=cls.companyA)
        MemberFactory(account=cls.employeeA, company=cls.companyA)
        MemberFactory(account=cls.employerB, company=cls.companyB)
        MemberFactory(account=cls.employeeB, company=cls.companyB)
예제 #9
0
    def setUpTestData(cls):
        """
        Initialize the class by populating the database.

        Some notes:
          - The 'ignored' company is to make a clear difference in the
            response for management and members of a company.
        """

        cls.company = CompanyFactory()
        cls.ignored = CompanyFactory()

        cls.external = UserFactory(group=Group.objects.create(name="external"))
        cls.employer = UserFactory(group=Group.objects.get(id=Groups.employer))
        cls.employee = UserFactory(group=Group.objects.get(id=Groups.employee))

        cls.external_token = AuthFactory(user=cls.external)
        cls.employer_token = AuthFactory(user=cls.employer)
        cls.employee_token = AuthFactory(user=cls.employee)

        MemberFactory(account=cls.employer, company=cls.company)
        MemberFactory(account=cls.employee, company=cls.company)

        cls.management = UserFactory(group=Group.objects.get(
            id=Groups.management))

        cls.administrator = UserFactory(group=Group.objects.get(
            id=Groups.admin))

        cls.management_token = AuthFactory(user=cls.management)
        cls.administrator_token = AuthFactory(user=cls.administrator)
예제 #10
0
def test_matter_report_filter_with_value_error(snapshot, request):
    """ Test matter report filter with value error """

    user_instance = UserFactory(first_name='name', last_name='name')

    MatterFactory.create_batch(
        size=5,
        assistant=user_instance,
    )

    staff_member = UserFactory(id=1)
    request.user = staff_member

    client = Client(schema, context=request)
    query = client.execute("""
        query getMatters($matterReport: String) {
            matters(first: 3, matterReport: $matterReport) {
                edges {
                    node {
                        id
                        name
                        client {
                            id
                            name
                        }
                        billableStatus
                    }
                }
            }
        }
    """,
                           variable_values={
                               'matterReport': 'name',
                           })
    snapshot.assert_match(query)
예제 #11
0
 def setUp(self):
     self.trs = create_transmittal()
     self.trs.recipient.users.add(UserFactory(email='*****@*****.**'))
     self.trs.recipient.users.add(UserFactory(email='*****@*****.**'))
     self.trs.recipient.users.add(UserFactory(email='*****@*****.**'))
     self.trs.recipient.users.add(
         UserFactory(email='*****@*****.**',
                     send_trs_reminders_mails=False))
예제 #12
0
    def setUp(self):
        self.category = CategoryFactory()
        self.user = UserFactory(email='*****@*****.**',
                                password='******',
                                category=self.category)
        self.client.login(email=self.user.email, password='******')

        self.user2 = UserFactory(email='*****@*****.**',
                                 password='******',
                                 category=self.category)
예제 #13
0
    def test_notification_list(self):
        trs = create_transmittal()
        rev = trs.latest_revision

        trs.recipient.users.add(UserFactory(email='*****@*****.**'))
        trs.recipient.users.add(UserFactory(email='*****@*****.**'))
        trs.recipient.users.add(UserFactory(email='*****@*****.**'))

        send_transmittal_creation_notifications(trs, rev)
        self.assertEqual(len(mail.outbox), 3)
예제 #14
0
def test_user_role_contributor():
    """Users with 'is_contributor' as True are considered as contributors."""

    # user
    UserFactory(is_contributor=False)
    # contributor
    UserFactory(is_contributor=True)

    assert User.objects.count() == 2
    assert User.objects.contributors().count() == 1
예제 #15
0
    def test_attendance_data(self):
        user1 = UserFactory(email='*****@*****.**')
        user2 = UserFactory(email='*****@*****.**')
        AttendanceFactory(user=user1, event=self.event)
        AttendanceFactory(user=user2, event=self.event)

        url = reverse('event:detail', kwargs={"pk": self.event.pk})
        self.client.login(email='*****@*****.**', password='******')
        response = self.client.get(url)
        self.assertContains(response, "user1")
        self.assertContains(response, "user2")
예제 #16
0
 def setUp(self):
     cache.clear()
     self.category = CategoryFactory()
     self.user = UserFactory(email='*****@*****.**',
                             password='******',
                             is_superuser=True,
                             category=self.category)
     self.other_user = UserFactory(email='*****@*****.**',
                                   category=self.category)
     self.client.login(email=self.user.email, password='******')
     self.url = reverse('category_list')
예제 #17
0
def test_user_role_search_page_admin():
    """Users with linked Search Pages are considered as Search Page administrators."""

    # user
    UserFactory(is_contributor=False)
    # search page administrator
    search_page_administrator = UserFactory(is_contributor=False)
    SearchPageFactory(administrator=search_page_administrator)

    assert User.objects.count() == 2
    assert User.objects.search_page_admins().count() == 1
예제 #18
0
 def setUp(self):
     self.category = CategoryFactory()
     self.user1 = UserFactory(username='******', category=self.category)
     self.user2 = UserFactory(username='******', category=self.category)
     self.user3 = UserFactory(username='******',
                              category=self.category)
     self.doc = DocumentFactory(revision={
         'leader': self.user1,
     })
     self.revision = self.doc.latest_revision
     self.revision.start_review()
예제 #19
0
 def test_reviewers_not_in_categories(self):
     form = DistributionListForm({
         'name':
         'test',
         'categories': [self.category.id],
         'leader':
         self.users[0].id,
         'reviewers': [UserFactory().id, UserFactory().id]
     })
     self.assertFalse(form.is_valid())
     self.assertTrue('reviewers' in form.errors)
예제 #20
0
파일: test_emails.py 프로젝트: pmzhou/phase
 def setUp(self):
     super(ClosedReviewsEmailTests, self).setUp()
     self.today = timezone.now()
     self.yesterday = timezone.now() - datetime.timedelta(days=1)
     self.originator = EntityFactory(
         type='originator',
         users=[
             UserFactory(),
             UserFactory(),
             UserFactory(),
             UserFactory(send_closed_reviews_mails=False),
         ])
예제 #21
0
def test_user_role_animator():
    """Users with 'animator_perimeter' filled are considered as local animators."""

    # user
    UserFactory(is_contributor=False)
    # local animator
    martinique = PerimeterFactory(name='Martinique',
                                  scale=Perimeter.SCALES.region)
    UserFactory(animator_perimeter=martinique)

    assert User.objects.count() == 2
    assert User.objects.animators().count() == 1
예제 #22
0
 def setUp(self):
     self.category = CategoryFactory()
     self.user = UserFactory(email='*****@*****.**',
                             password='******',
                             is_superuser=True,
                             category=self.category)
     self.user2 = UserFactory(email='*****@*****.**',
                              password='******',
                              category=self.category)
     self.user3 = UserFactory(email='*****@*****.**',
                              password='******',
                              category=self.category)
예제 #23
0
 def setUp(self):
     self.category = CategoryFactory()
     self.user = UserFactory(
         email='*****@*****.**',
         password='******',
         is_superuser=True,
         category=self.category
     )
     self.other_user = UserFactory(
         email='*****@*****.**',
         category=self.category
     )
     self.client.login(email=self.user.email, password='******')
     self.url = reverse('priorities_review_document_list')
예제 #24
0
def test_user_role_api_token():
    """Users with a Token are considered as API users."""

    # user
    UserFactory(is_contributor=False)
    # api user
    api_user = UserFactory(is_contributor=False)
    # There are different ways to generate an API Token (most simple one: in the Admin UI)
    # https://django-rest-framework.readthedocs.io/en/3.4.7/api-guide/authentication.html?highlight=generate#generating-tokens  # noqa
    # call_command('drf_create_token', api_user.email)
    Token.objects.get_or_create(user=api_user)

    assert User.objects.count() == 2
    assert User.objects.with_api_token().count() == 1
예제 #25
0
 def setUp(self):
     self.test_user = UserFactory()
     self.test_user_2 = UserFactory()
     self.private_guide = GuideFactory(
         owner=self.test_user,
         name='name',
         private=True,
         guide_file__data=b'guide'
     )
     self.public_guide = GuideFactory(
         owner=self.test_user,
         name='name',
         private=False,
     )
예제 #26
0
    def test_new_reviews_statuses(self):
        revision = self.create_reviewable_document()
        revision.reviewers.add(UserFactory(), UserFactory())

        revision.start_review()

        reviewer_review = revision.get_review(self.user2)
        self.assertEqual(reviewer_review.status, 'progress')

        leader_review = revision.get_leader_review()
        self.assertEqual(leader_review.status, 'pending')

        approver_review = revision.get_approver_review()
        self.assertEqual(approver_review.status, 'pending')
예제 #27
0
    def setUpTestData(cls):
        cls.company = CompanyFactory()
        cls.ignored = CompanyFactory()

        cls.employer = UserFactory(group=Group.objects.get(id=Groups.employer))
        cls.employee = UserFactory(group=Group.objects.get(id=Groups.employee))
        cls.managing = UserFactory(group=Group.objects.get(
            id=Groups.management))

        cls.employee_token = AuthFactory(user=cls.employee)
        cls.employer_token = AuthFactory(user=cls.employer)
        cls.managing_token = AuthFactory(user=cls.managing)

        MemberFactory(account=cls.employer, company=cls.company)
        MemberFactory(account=cls.employee, company=cls.company)
예제 #28
0
 def setUp(self):
     self.category = CategoryFactory()
     self.user1 = UserFactory(email='*****@*****.**',
                              password='******',
                              is_superuser=True,
                              category=self.category)
     self.client.login(email=self.user1.email, password='******')
     self.user2 = UserFactory(email='*****@*****.**',
                              password='******',
                              category=self.category)
     self.doc = DocumentFactory(revision={
         'leader': self.user1,
     })
     self.revision = self.doc.latest_revision
     self.revision.start_review()
예제 #29
0
    def test_plan_seat_restrictions(self):
        plan_1 = PlanFactory()
        plan_2 = PlanFactory()
        plan_3 = PlanFactory()

        account_1 = AccountFactory(plan=plan_1)
        account_2 = AccountFactory(plan=plan_2)
        account_3 = AccountFactory(plan=plan_3)

        user_1 = UserFactory(account=account_1)
        user_2 = UserFactory(account=account_2)
        user_3 = UserFactory(account=account_3)

        flight = FlightFactory(departure=arrow.now().replace(days=+12).datetime, seats_total=8)

        self.assertTrue(flight.check_plan_seat_restrictions(user_1, 1), 'no plan seat restrictions')
        self.assertTrue(flight.check_plan_seat_restrictions(user_2, 1), 'no plan seat restrictions')
        self.assertTrue(flight.check_plan_seat_restrictions(user_3, 1), 'no plan seat restrictions')

        FlightPlanSeatRestrictionFactory(flight=flight, plan=plan_1, seats=1)
        FlightPlanSeatRestrictionFactory(flight=flight, plan=plan_2, seats=2)
        FlightPlanSeatRestrictionFactory(flight=flight, plan=plan_3, seats=3)

        self.assertTrue(flight.check_plan_seat_restrictions(user_1, 1), 'seats still available for plan')
        self.assertTrue(flight.check_plan_seat_restrictions(user_2, 1), 'seats still available for plan')
        self.assertTrue(flight.check_plan_seat_restrictions(user_3, 1), 'seats still available for plan')

        account_4 = AccountFactory(plan=plan_1)
        account_5 = AccountFactory(plan=plan_2)
        account_6 = AccountFactory(plan=plan_3)

        reservation_4 = ReservationFactory(account=account_4)
        FlightReservationFactory.create(reservation=reservation_4, flight=flight, passenger_count=1)
        reservation_4.reserve()

        self.assertFalse(flight.check_plan_seat_restrictions(user_1, 1), 'No seats still available for plan')

        reservation_5 = ReservationFactory(account=account_5)
        FlightReservationFactory.create(reservation=reservation_5, flight=flight, passenger_count=2)
        reservation_5.reserve()

        self.assertFalse(flight.check_plan_seat_restrictions(user_2, 1), 'No seats still available for plan')

        reservation_6 = ReservationFactory(account=account_6)
        FlightReservationFactory.create(reservation=reservation_6, flight=flight, passenger_count=3)
        reservation_6.reserve()

        self.assertFalse(flight.check_plan_seat_restrictions(user_3, 1), 'No seats still available for plan')
예제 #30
0
 def create_admin(self):
     # Factory creates simple user, so ``is_staff`` is set later
     self.admin = UserFactory(username='******', password='******')
     self.admin.is_staff = True
     self.admin.is_superuser = True
     self.admin.save()
     print("admin user have been created successfully")