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