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)
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 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")