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_company(self):
        company = insert_a_company()
        self.assertEquals(Company.query.first().company_name,
                          company.company_name)

        update_company(company.id, {'company_name': 'new company'})
        self.assertEquals(Company.query.first().company_name, 'new company')
    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_delete_company(self):
        company = insert_a_company()
        self.assertEquals(Company.query.count(), 1)
        self.assertEquals(ContractBase.query.count(), 1)

        delete_company(company.id)
        self.assertEquals(Company.query.count(), 0)
        self.assertEquals(ContractBase.query.count(), 1)
    def test_delete_company(self):
        company = insert_a_company()
        self.assertEquals(Company.query.count(), 1)
        self.assertEquals(ContractBase.query.count(), 1)

        delete_company(company.id)
        self.assertEquals(Company.query.count(), 0)
        self.assertEquals(ContractBase.query.count(), 1)
    def test_update_company(self):
        company = insert_a_company()
        self.assertEquals(
            Company.query.first().company_name,
            company.company_name
        )

        update_company(company.id, {'company_name': 'new company'})
        self.assertEquals(
            Company.query.first().company_name,
            'new company'
        )
    def test_get_all_companies(self):
        insert_a_company()
        insert_a_company(name='new company 2')
        insert_a_company(name='new company 3')

        self.assertEquals(len(get_all_companies()), 3)
    def test_get_all_companies(self):
        insert_a_company()
        insert_a_company(name='new company 2')
        insert_a_company(name='new company 3')

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