def test_db_building_create(self, init_sites): site_ids = init_sites building_db = BuildingDB() # check that database is empty result = building_db.get_all() assert list(result) == [] # create an item building = Building('Building #0', 'BarRestaurant', site_ids[0], area=666) new_building_id = building_db.create(building) assert new_building_id is not None assert new_building_id == building.id # check that database is not empty now result = building_db.get_all() buildings = list(result) assert len(buildings) == 1 assert buildings[0].id == building.id assert buildings[0].name == building.name assert buildings[0].description == building.description assert buildings[0].area == building.area assert buildings[0].site_id == building.site_id == site_ids[0] # error: invalid site # TODO: test this at `Thing` level ? building.site_id = generate_id() with pytest.raises(ValidationError) as exc: building_db.update(building.id, building) assert 'site_id' in exc.value.messages
def _create_buildings(site_ids): buildings_data = [ { 'name': 'building_A', 'kind': 'Hospital', 'area': 6900, 'site_id': site_ids[0] }, { 'name': 'building_B', 'kind': 'Hospital', 'area': 789456, 'site_id': site_ids[0] }, { 'name': 'building_C', 'kind': 'House', 'area': 420, 'site_id': site_ids[1] }, { 'name': 'building_D', 'kind': 'Hospital', 'area': 987654, 'site_id': site_ids[3] }, ] return [db_accessor.create(Building(**data)) for data in buildings_data]
def init_buildings(): site_ids = init_sites() buildings = [ Building('Building #{}'.format(idx+1), 'BarRestaurant', site_ids[0], id=building_id) for idx, building_id in enumerate(_get_building_ids())] building_ids = [BuildingDB().create(building) for building in buildings] return building_ids, site_ids
def init_buildings(): site_ids = init_sites() global created_building_ids buildings = [ Building('Building #{}'.format(idx + 1), 'BarRestaurant', site_ids[0], id=building_id) for idx, building_id in enumerate(get_building_ids()) ] result = [BuildingDB().create(building) for building in buildings] created_building_ids = [id_ for id_ in result] return result
def test_db_building_select_filter(self, init_sites): site_ids = init_sites building_db = BuildingDB() # create an item building = Building('Building #0', 'BarRestaurant', site_ids[0], area=666) new_building_id = building_db.create(building) # check that database is empty result = building_db.get_all(site_id=str(site_ids[0])) buildings = list(result) assert len(buildings) == 1 assert buildings[0].id == new_building_id result = building_db.get_all(kind='CommercialBuilding') buildings = list(result) assert len(buildings) == 1 assert buildings[0].id == new_building_id