def test_instance_callbacks_are_executed_once(self): ODMModel.set_pm(MagicMock()) dic = {"_id": "2323", "pippo": "pluto"} odm = ODMModel(dic) odm.pippo = MagicMock() odm.pluto = MagicMock() sempronio = MagicMock() odm.listen_once("before_save", "pippo") odm.listen_once("before_save", "pluto") odm.listen_once("before_save", sempronio) odm.save() MagicMock.assert_called_once_with(odm.pippo, odm) MagicMock.assert_called_once_with(odm.pluto, odm) MagicMock.assert_called_once_with(sempronio, odm) self.assertEqual(odm.before_callbacks_single["save"], []) odm.pippo.reset_mock() odm.pluto.reset_mock() sempronio.reset_mock() odm.listen_once("after_destroy", "pippo") odm.listen_once("after_destroy", sempronio) odm.destroy() MagicMock.assert_called_once_with(odm.pippo, odm) MagicMock.assert_called_once_with(sempronio, odm) self.assertEqual(odm.pluto.call_count, 0) self.assertEqual(odm.after_callbacks_single["destroy"], [])
def test_destroy(self): pm = MagicMock() ODMModel.set_pm(pm) dic = {"_id": "2323", "pippo": "pluto"} odm = ODMModel(dic) odm.destroy() pm.destroy_by_id.assert_called_once_with(odm.collection_name(), "2323")
def test_destroy(self): pm = MagicMock() ODMModel.set_pm(pm) dic = {"_id" : "2323", "pippo" : "pluto"} odm = ODMModel(dic) odm.destroy() pm.destroy_by_id.assert_called_once_with(odm.collection_name(), "2323")
def test_instance_callbacks_are_executed_once(self): ODMModel.set_pm(MagicMock()) dic = {"_id" : "2323", "pippo" : "pluto"} odm = ODMModel(dic) odm.pippo = MagicMock() odm.pluto = MagicMock() sempronio = MagicMock() odm.listen_once("before_save", "pippo") odm.listen_once("before_save", "pluto") odm.listen_once("before_save", sempronio) odm.save() MagicMock.assert_called_once_with(odm.pippo, odm) MagicMock.assert_called_once_with(odm.pluto, odm) MagicMock.assert_called_once_with(sempronio, odm) self.assertEqual(odm.before_callbacks_single["save"], []) odm.pippo.reset_mock() odm.pluto.reset_mock() sempronio.reset_mock() odm.listen_once("after_destroy", "pippo") odm.listen_once("after_destroy", sempronio) odm.destroy() MagicMock.assert_called_once_with(odm.pippo, odm) MagicMock.assert_called_once_with(sempronio, odm) self.assertEqual(odm.pluto.call_count, 0) self.assertEqual(odm.after_callbacks_single["destroy"], [])
def setUp(self): self._pm = MongoDBPersistenceManager({ "db": { "url" : "localhost", "port" : 27017, "db_name" : "campus_unimi_test" } }) ODMModel.set_pm(self._pm) self._pm.clean_collection("building")
def setUp(self): self._pm = MongoDBPersistenceManager({ "db": { "url": "localhost", "port": 27017, "db_name": "campus_unimi_test" } }) ODMModel.set_pm(self._pm) self._pm.clean_collection("building")
def test_clean(self): pm = MongoDBPersistenceManager({ "db": { "url" : "localhost", "port" : 27017, "db_name" : "campus_unimi_test" } }) ODMModel.set_pm(pm) dic = {"_id" : "2323", "pippo" : "pluto"} odm = ODMModel(dic) odm.save() self.assertEqual(ODMModel._pm.get_collection("odmmodel").find_one({"_id" : "2323"}), dic) odm.clean() self.assertEqual(ODMModel._pm.get_collection("odmmodel").find_one({"_id" : "2323"}), None)
def test_clean(self): pm = MongoDBPersistenceManager({ "db": { "url": "localhost", "port": 27017, "db_name": "campus_unimi_test" } }) ODMModel.set_pm(pm) dic = {"_id": "2323", "pippo": "pluto"} odm = ODMModel(dic) odm.save() self.assertEqual( ODMModel._pm.get_collection("odmmodel").find_one({"_id": "2323"}), dic) odm.clean() self.assertEqual( ODMModel._pm.get_collection("odmmodel").find_one({"_id": "2323"}), None)
def test_destroy_callbacks_are_called(self): ODMModel.set_pm(MagicMock()) dic = {"_id": "2323", "pippo": "pluto"} odm = ODMModel(dic) pippo = MagicMock() pluto = MagicMock() sempronio = MagicMock() ODMModel.listen("before_destroy", pippo) ODMModel.listen("before_destroy", sempronio) ODMModel.listen("after_destroy", sempronio) ODMModel.listen("after_destroy", pluto) odm.destroy() MagicMock.assert_called_once_with(pippo, odm) MagicMock.assert_called_once_with(pluto, odm) MagicMock.assert_any_call(sempronio, odm)
def run_csv(self, files): """ Process csv files. Arguments: - files: files we want process. Returns: None Instantiates a MongoDBPersistenceManager and a CSVTask to process the csv files whit the apposite procedure. """ persistence = MongoDBPersistenceManager(self._config) ODMModel.set_pm( persistence ) task = CSVTask(self._config) task.perform_updates_on_files(files) self.run_lookup()
def run_svg(self, b_ids): """ Create svg files representing maps of buildings. Arguments: - b_ids: a list of string representing the building ids of the buildings we want create/update svg files. Returns: None Instantiates a MongoDBPersistenceManager and a SVGTask to create the svg files whit the apposite procedure. If b_ids is None the CSVTask create svg files of every building in the DB. """ persistence = MongoDBPersistenceManager(self._config) ODMModel.set_pm(persistence) task = SVGTask(self._config) task.perform_svg_update(b_ids)
def run_svg(self, b_ids): """ Create svg files representing maps of buildings. Arguments: - b_ids: a list of string representing the building ids of the buildings we want create/update svg files. Returns: None Instantiates a MongoDBPersistenceManager and a SVGTask to create the svg files whit the apposite procedure. If b_ids is None the CSVTask create svg files of every building in the DB. """ persistence = MongoDBPersistenceManager(self._config) ODMModel.set_pm( persistence ) task = SVGTask(self._config) task.perform_svg_update(b_ids)
def test_destroy_callbacks_are_called(self): ODMModel.set_pm(MagicMock()) dic = {"_id" : "2323", "pippo" : "pluto"} odm = ODMModel(dic) pippo = MagicMock() pluto = MagicMock() sempronio = MagicMock() ODMModel.listen("before_destroy", pippo) ODMModel.listen("before_destroy", sempronio) ODMModel.listen("after_destroy", sempronio) ODMModel.listen("after_destroy", pluto) odm.destroy() MagicMock.assert_called_once_with(pippo, odm) MagicMock.assert_called_once_with(pluto, odm) MagicMock.assert_any_call(sempronio, odm)
def run_csv(self, files): """ Process csv files. Arguments: - files: files we want process. Returns: None Instantiates a MongoDBPersistenceManager and a CSVTask to process the csv files whit the apposite procedure. """ persistence = MongoDBPersistenceManager(self._config) ODMModel.set_pm(persistence) task = CSVTask(self._config) task.perform_updates_on_files(files) self.run_lookup()
def test_class_callbacks_are_called(self): ODMModel.set_pm(MagicMock()) dic = {"_id" : "2323", "pippo" : "pluto"} odm = ODMModel(dic) odm.pippo = MagicMock() odm.pluto = MagicMock() odm.sempronio = MagicMock() ODMModel.listen("before_save", "sempronio") ODMModel.listen("before_save", "pippo") ODMModel.listen("after_save", "pluto") ODMModel.listen("after_save", "sempronio") odm.save() MagicMock.assert_called_once_with(odm.pippo, odm) MagicMock.assert_called_once_with(odm.pluto, odm) self.assertEqual(odm.sempronio.call_count, 2)
def test_class_callbacks_are_called(self): ODMModel.set_pm(MagicMock()) dic = {"_id": "2323", "pippo": "pluto"} odm = ODMModel(dic) odm.pippo = MagicMock() odm.pluto = MagicMock() odm.sempronio = MagicMock() ODMModel.listen("before_save", "sempronio") ODMModel.listen("before_save", "pippo") ODMModel.listen("after_save", "pluto") ODMModel.listen("after_save", "sempronio") odm.save() MagicMock.assert_called_once_with(odm.pippo, odm) MagicMock.assert_called_once_with(odm.pluto, odm) self.assertEqual(odm.sempronio.call_count, 2)
def test_instance_callbacks_are_saved(self): ODMModel.set_pm(MagicMock()) dic = {"_id": "2323", "pippo": "pluto"} odm = ODMModel(dic) pippo = MagicMock() pluto = MagicMock() sempronio = MagicMock() odm.listen_once("before_save", "pippo") odm.listen_once("before_save", "pluto") odm.listen_once("before_save", "sempronio") self.assertEqual(odm.before_callbacks_single["save"], ["pippo", "pluto", "sempronio"]) odm.listen_once("after_save", "pippo") odm.listen_once("after_save", "sempronio") self.assertEqual(odm.after_callbacks_single["save"], ["pippo", "sempronio"])
def test_instance_callbacks_are_saved(self): ODMModel.set_pm(MagicMock()) dic = {"_id" : "2323", "pippo" : "pluto"} odm = ODMModel(dic) pippo = MagicMock() pluto = MagicMock() sempronio = MagicMock() odm.listen_once("before_save", "pippo") odm.listen_once("before_save", "pluto") odm.listen_once("before_save", "sempronio") self.assertEqual( odm.before_callbacks_single["save"], ["pippo", "pluto", "sempronio"] ) odm.listen_once("after_save", "pippo") odm.listen_once("after_save", "sempronio") self.assertEqual( odm.after_callbacks_single["save"], ["pippo", "sempronio"] )
def setUp(self): pm = MongoDBPersistenceManager({ "db": { "url" : "localhost", "port" : 27017, "db_name" : "campus_unimi_test" } }) self.old_pm = getattr(ODMModel, "_pm", None) ODMModel.set_pm(pm) self.db_building = { "_id" : "21030", "dxf" : { "l_b_id" : "5703", "floors" : [ { "f_id" : "-05", "rooms": {}, "unidentified_rooms": [] }, ] }, "edilizia" : { "l_b_id" : "5703", "b_id" : "21030", "lat" : "", "lon" : "", "address" : "" }, "easyroom" : { "b_id" : "21030", "address" : "Via Celoria" } } pm.clean_collection("building") self.edil_up = EdiliziaDataUpdater() self.easy_up = EasyroomDataUpdater() self.dxf_updater = DXFDataUpdater()
from persistence import MongoDBPersistenceManager from model import RoomCategory,Building,BuildingView,AvailableService from tasks import LookupTableTask from model.odm import ODMModel from bson.json_util import dumps from flask import Flask, jsonify,abort,request,send_from_directory,render_template,Markup from datetime import datetime from api.model import RoomTimeTable app = Flask(__name__,static_url_path='') app.app_config = ConfigManager('config/general.json') app.persistence = MongoDBPersistenceManager(app.app_config) app.api_namespace = '/api' app.api_version = 'v1.0' ODMModel.set_pm( app.persistence ) BuildingView.setup_collection() # radius used with GeoSpatial Query (meters) app.radius = 2000 app.maps_folder = 'static-maps' app.lookup_table_folder = 'static-table' ########### # HELPERS # ########### def url_for_endpoint(url_endpoint): return '/'.join( [app.api_namespace,app.api_version,url_endpoint] )+'/' def filter_buildings_by_service(buildings,service,remove_floor_details=False): return [ b for b in buildings if len([ f for f in b['floors'] if service in f['available_services'] ])>0 ]
from utils.config_manager import ConfigManager from persistence.db import MongoDBPersistenceManager from model.odm import ODMModel from model import Building from utils.logger import Logger from analysis import DXFAnalysis from analysis import FloorMergeAnalysis from analysis import BuildingIdAnalysis persistence = MongoDBPersistenceManager(ConfigManager("config/general.json")) ODMModel.set_pm( persistence ) def data_and_percent(value, total, num_padding = 3,): if(total > 0): return ("{:0>"+str(num_padding)+"} ({:>0.1f}%)").format(value, value/total*100.0) else: return ("{:0>"+str(num_padding)+"} ").format(value) class GeneralReport: merge_tuples = [ ("edilizia", "dxf"), ("edilizia", "easyroom"), ("easyroom", "dxf"), ("easyroom", "edilizia") ] @classmethod def report_building(klass, building): BuildingIdAnalysis.analyse_building_id(building)
def __init__(self): self._config = ConfigManager("config/general.json") self._data_persistence = MongoDBPersistenceManager(self._config) ODMModel.set_pm(self._data_persistence) BuildingView.setup_collection()
def __init__(self): self._config = ConfigManager("config/general.json") self._data_persistence = MongoDBPersistenceManager(self._config) ODMModel.set_pm( self._data_persistence ) BuildingView.setup_collection()
def tearDown(self): ODMModel.set_pm(self.old_pm)
def setUp(self): pm = MongoDBPersistenceManager({ "db": { "url" : "localhost", "port" : 27017, "db_name" : "campus_unimi_test" } }) ODMModel.set_pm(pm) self.edil_rooms = [ { 'room_name' : 'Aula Seminari', 'cat_name' : 'Aula', 'r_id' : 'T-065', 'b_id' : '21030', 'capacity' : '52', 'l_floor' : 'T' }, { 'room_name' : 'Aula Pippo', 'cat_name' : 'Aula', 'r_id' : 'T066', 'b_id' : '21030', 'capacity' : '52', 'l_floor' : 'T' }, { 'room_name' : 'Aula Pippo Sdentato', 'cat_name' : 'Aula', 'r_id' : '1066', 'b_id' : '21030', 'capacity' : '52', 'l_floor' : '1' } ] self.easy_rooms = [ { 'room_name' : 'Aula Seminari', 'cat_name' : 'Aula', 'r_id' : '21030#T-065', 'b_id' : '21030', 'capacity' : '52', 'l_floor' : '0' }, { 'room_name' : 'Aula Pippo', 'cat_name' : 'Aula', 'r_id' : '21030#T066', 'b_id' : '21030', 'capacity' : '52', 'l_floor' : '0' }, { 'room_name' : 'Aula Pippo Sdentato', 'cat_name' : 'Aula', 'r_id' : '21030#1066', 'b_id' : '21030', 'capacity' : '52', 'l_floor' : '10' } ] pm.clean_collection("building") self.edil_up = EdiliziaDataUpdater() self.easy_up = EasyroomDataUpdater() Building.__str__ = lambda x: ""