def setUp(self):
        super(TestConductor, self).setUp()
        # create a conductor and general staff person
        self.conductor_role_id = insert_a_role('conductor')
        self.staff_role_id = insert_a_role('staff')
        self.conductor = insert_a_user(role=self.conductor_role_id)
        self.staff = insert_a_user(email='*****@*****.**', role=self.staff_role_id)

        # create three stages, and set up a flow between them
        self.stage1 = insert_a_stage(name='stage1', send_notifs=True, post_opportunities=True)
        self.stage2 = insert_a_stage(name='stage2', send_notifs=True, post_opportunities=False)
        self.stage3 = insert_a_stage(name='stage3', send_notifs=False, post_opportunities=False)

        self.flow = insert_a_flow(stage_ids=[self.stage1.id, self.stage2.id, self.stage3.id])

        # create two contracts
        self.contract1 = insert_a_contract(
            contract_type='County', description='scuba supplies', financial_id=123,
            properties=[{'key': 'Spec Number', 'value': '123'}]
        )
        self.contract2 = insert_a_contract(
            contract_type='County', description='scuba repair', financial_id=456,
            properties=[{'key': 'Spec Number', 'value': '456'}]
        )

        self.login_user(self.conductor)

        self.detail_view = '/conductor/contract/{}/stage/{}'
 def setUp(self):
     super(TestAdmin, self).setUp()
     self.email = '*****@*****.**'
     self.email2 = '*****@*****.**'
     self.admin_role = insert_a_role('admin')
     self.superadmin_role = insert_a_role('superadmin')
     self.admin_user = insert_a_user(email=self.email, role=self.admin_role)
     self.superadmin_user = insert_a_user(email=self.email2, role=self.superadmin_role)
예제 #3
0
 def setUp(self):
     super(TestAdmin, self).setUp()
     self.email = '*****@*****.**'
     self.email2 = '*****@*****.**'
     self.admin_role = insert_a_role('admin')
     self.superadmin_role = insert_a_role('superadmin')
     self.admin_user = insert_a_user(email=self.email, role=self.admin_role)
     self.superadmin_user = insert_a_user(email=self.email2,
                                          role=self.superadmin_role)
예제 #4
0
    def setUp(self):
        super(TestConductor, self).setUp()
        # create a conductor and general staff person
        self.conductor_role_id = insert_a_role('conductor')
        self.staff_role_id = insert_a_role('staff')
        self.conductor = insert_a_user(role=self.conductor_role_id)
        self.staff = insert_a_user(email='*****@*****.**',
                                   role=self.staff_role_id)

        # create three stages, and set up a flow between them
        self.stage1 = insert_a_stage(name='stage1',
                                     send_notifs=True,
                                     post_opportunities=True)
        self.stage2 = insert_a_stage(name='stage2',
                                     send_notifs=True,
                                     post_opportunities=False)
        self.stage3 = insert_a_stage(name='stage3',
                                     send_notifs=False,
                                     post_opportunities=False)

        self.flow = insert_a_flow(
            stage_ids=[self.stage1.id, self.stage2.id, self.stage3.id])

        # create two contracts
        self.contract1 = insert_a_contract(contract_type='County',
                                           description='scuba supplies',
                                           financial_id=123,
                                           properties=[{
                                               'key': 'Spec Number',
                                               'value': '123'
                                           }])
        self.contract2 = insert_a_contract(contract_type='County',
                                           description='scuba repair',
                                           financial_id=456,
                                           properties=[{
                                               'key': 'Spec Number',
                                               'value': '456'
                                           }])

        self.login_user(self.conductor)

        self.detail_view = '/conductor/contract/{}/stage/{}'
예제 #5
0
    def test_new_user_success(self, urlopen):
        '''
        Test that we properly register and onboard new users with a city domain
        '''
        # insert all of our roles
        insert_a_role('superadmin')
        insert_a_role('admin')
        insert_a_role('staff')

        # assert we have only one user
        self.assertEquals(User.query.count(), 1)

        mock_open = Mock()
        mock_open.read.side_effect = [
            '{"status": "okay", "email": "*****@*****.**"}'
        ]
        urlopen.return_value = mock_open

        post = self.client.post('/users/auth?next=/explore/',
                                data=dict(assertion='test'))

        # assert we add a new user and redirect to the register page
        self.assertEquals(User.query.count(), 2)
        self.assertEquals(post.status_code, 200)
        self.assertEquals(post.data, '/users/profile')

        # assert we get the new user message
        register = self.client.get('/users/profile')
        self.assertTrue(
            'Welcome to the Pittsbugh Purchasing Suite!' in register.data)
        self.assert_template_used('users/profile.html')

        # assert that you cannot update with junk information
        bad_update = self.client.post(
            '/users/profile',
            data=dict(department='THIS IS NOT A VALID DEPARTMENT'),
            follow_redirects=True)
        self.assertFalse(
            User.query.get(2).department == 'THIS IS NOT A VALID DEPARTMENT')
        self.assertTrue('Not a valid choice' in bad_update.data)

        # update the user successfully
        update = self.client.post('/users/profile',
                                  data=dict(first_name='foo',
                                            last_name='bar',
                                            department='Other'))

        # assert we successfully update
        self.assertEquals(update.status_code, 302)
        self.assertEquals(update.location, 'http://localhost/users/profile')
        self.assert_flashes('Updated your profile!', 'alert-success')

        # make sure the new user message is gone
        updated = self.client.get('/users/profile')

        self.assertTrue(
            'Welcome to the Pittsbugh Purchasing Suite!' not in updated.data)
        self.assert_template_used('users/profile.html')
    def test_new_user_success(self, urlopen):
        """
        Test that we properly register and onboard new users with a city domain
        """
        # insert all of our roles
        insert_a_role("superadmin")
        insert_a_role("admin")
        insert_a_role("staff")

        # assert we have only one user
        self.assertEquals(User.query.count(), 1)

        mock_open = Mock()
        mock_open.read.side_effect = ['{"status": "okay", "email": "*****@*****.**"}']
        urlopen.return_value = mock_open

        post = self.client.post("/users/auth?next=/explore/", data=dict(assertion="test"))

        # assert we add a new user and redirect to the register page
        self.assertEquals(User.query.count(), 2)
        self.assertEquals(post.status_code, 200)
        self.assertEquals(post.data, "/users/profile")

        # assert we get the new user message
        register = self.client.get("/users/profile")
        self.assertTrue("Welcome to the Pittsbugh Purchasing Suite!" in register.data)
        self.assert_template_used("users/profile.html")

        # assert that you cannot update with junk information
        bad_update = self.client.post(
            "/users/profile", data=dict(department="THIS IS NOT A VALID DEPARTMENT"), follow_redirects=True
        )
        self.assertFalse(User.query.get(2).department == "THIS IS NOT A VALID DEPARTMENT")
        self.assertTrue("Not a valid choice" in bad_update.data)

        # update the user successfully
        update = self.client.post("/users/profile", data=dict(first_name="foo", last_name="bar", department="Other"))

        # assert we successfully update
        self.assertEquals(update.status_code, 302)
        self.assertEquals(update.location, "http://localhost/users/profile")
        self.assert_flashes("Updated your profile!", "alert-success")

        # make sure the new user message is gone
        updated = self.client.get("/users/profile")

        self.assertTrue("Welcome to the Pittsbugh Purchasing Suite!" not in updated.data)
        self.assert_template_used("users/profile.html")