Пример #1
0
    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
Пример #2
0
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]
Пример #3
0
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
Пример #4
0
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
Пример #5
0
    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