コード例 #1
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/{}'
コード例 #2
0
    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
        )
コード例 #3
0
    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)
コード例 #4
0
    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
        )
コード例 #5
0
    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)
コード例 #6
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/{}'
コード例 #7
0
    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')])
コード例 #8
0
    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'
        )
コード例 #9
0
    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)
コード例 #10
0
    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')])
コード例 #11
0
    def test_get_contracts(self):
        insert_a_contract()
        insert_a_contract()
        insert_a_contract()

        self.assertEquals(len(get_all_contracts()), 3)