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_delete_stage(self): stage = insert_a_stage() self.assertEquals(Stage.query.count(), 1) self.assertEquals(StageProperty.query.count(), 2) # deleting a stage should delete the stage and its props delete_stage(stage.id) self.assertEquals(Stage.query.count(), 0) self.assertEquals(StageProperty.query.count(), 0) # it should not delete any associated contracts stage = insert_a_stage() contract = insert_a_contract() contract.current_stage_id = stage.id db.session.commit() self.assertEquals( ContractBase.query.first().current_stage.id, stage.id ) delete_stage(stage.id) self.assertEquals( ContractBase.query.first().current_stage, None )
def test_delete_stage(self): stage = insert_a_stage() self.assertEquals(Stage.query.count(), 1) self.assertEquals(StageProperty.query.count(), 2) # deleting a stage should delete the stage and its props delete_stage(stage.id) self.assertEquals(Stage.query.count(), 0) self.assertEquals(StageProperty.query.count(), 0) # it should not delete any associated contracts stage = insert_a_stage() contract = insert_a_contract() contract.current_stage_id = stage.id db.session.commit() self.assertEquals(ContractBase.query.first().current_stage.id, stage.id) delete_stage(stage.id) self.assertEquals(ContractBase.query.first().current_stage, None)
def test_create_new_company(self): # assert that creating a normal company should work company_data = dict( company_name='company one' ) company = create_new_company(company_data) self.assertEquals( Company.query.first().company_name, company.company_name ) # assert that creating a company with an # existing contract should work contract = insert_a_contract() company_with_contract_data = dict( company_name='company two', contracts=[contract] ) create_new_company(company_with_contract_data) self.assertEquals(Company.query.count(), 2) self.assertEquals( Company.query.all()[-1].contracts[0].id, contract.id ) # assert that creating a company with an existing # contract by id should work company_with_contract_id_data = dict( company_name='company three', contracts=[contract.id] ) create_new_company(company_with_contract_id_data) self.assertEquals(Company.query.count(), 3) # assert that nonexistant contracts can't be assigned # to a company company_with_bad_contract_data = dict( company_name='company four', contracts=[999] ) self.assertRaises( Exception, create_new_company, company_with_bad_contract_data ) self.assertEquals(Company.query.count(), 3) company_with_bad_contract_data_two = dict( company_name='company four', contracts=[None] ) self.assertRaises( Exception, create_new_company, company_with_bad_contract_data_two ) self.assertEquals(Company.query.count(), 3) # assert that you can't have duplicate names self.assertRaises( IntegrityError, create_new_company, company_data )
def test_delete_contract(self): contract = insert_a_contract() self.assertEquals(ContractBase.query.count(), 1) self.assertEquals(ContractProperty.query.count(), 2) delete_contract(contract.id) self.assertEquals(ContractBase.query.count(), 0) self.assertEquals(ContractProperty.query.count(), 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/{}'
def setUp(self): from flask_migrate import upgrade upgrade() # insert the users/roles self.admin_role = get_a_role('admin') self.superadmin_role = get_a_role('superadmin') self.admin_user = insert_a_user(email='*****@*****.**', role=self.admin_role.id) self.superadmin_user = insert_a_user(email='*****@*****.**', role=self.superadmin_role.id) # insert the companies/contracts company_1 = insert_a_company(name='ship', insert_contract=False) company_2 = insert_a_company(name='boat', insert_contract=False) insert_a_contract(description='vessel', companies=[company_2], line_items=[LineItem(description='NAVY')]) insert_a_contract(description='sail', financial_id=123, companies=[company_1], line_items=[LineItem(description='sunfish')]) insert_a_contract(description='sunfish', financial_id=456, properties=[dict(key='foo', value='engine')])
def test_update_contract(self): contract = insert_a_contract() self.assertEquals( ContractBase.query.first().description, contract.description ) update_contract(contract.id, { 'description': 'new description', }) self.assertEquals( ContractBase.query.first().description, 'new description' )
def test_create_new_company(self): # assert that creating a normal company should work company_data = dict(company_name='company one') company = create_new_company(company_data) self.assertEquals(Company.query.first().company_name, company.company_name) # assert that creating a company with an # existing contract should work contract = insert_a_contract() company_with_contract_data = dict(company_name='company two', contracts=[contract]) create_new_company(company_with_contract_data) self.assertEquals(Company.query.count(), 2) self.assertEquals(Company.query.all()[-1].contracts[0].id, contract.id) # assert that creating a company with an existing # contract by id should work company_with_contract_id_data = dict(company_name='company three', contracts=[contract.id]) create_new_company(company_with_contract_id_data) self.assertEquals(Company.query.count(), 3) # assert that nonexistant contracts can't be assigned # to a company company_with_bad_contract_data = dict(company_name='company four', contracts=[999]) self.assertRaises(Exception, create_new_company, company_with_bad_contract_data) self.assertEquals(Company.query.count(), 3) company_with_bad_contract_data_two = dict(company_name='company four', contracts=[None]) self.assertRaises(Exception, create_new_company, company_with_bad_contract_data_two) self.assertEquals(Company.query.count(), 3) # assert that you can't have duplicate names self.assertRaises(IntegrityError, create_new_company, company_data)
def test_get_contracts(self): insert_a_contract() insert_a_contract() insert_a_contract() self.assertEquals(len(get_all_contracts()), 3)