Пример #1
0
    def setUp(self):
        self.odm = ODMModel({"pippo": "pluto", "mickey": "paperino"})
        self.old_before_callbacks = ODMModel.before_callbacks
        self.old_after_callbacks = ODMModel.after_callbacks

        ODMModel.before_callbacks = {}
        ODMModel.after_callbacks = {}
Пример #2
0
 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")
Пример #4
0
   def setUp(self):
      self.odm = ODMModel( { "pippo" : "pluto", "mickey": "paperino" } )
      self.old_before_callbacks    = ODMModel.before_callbacks
      self.old_after_callbacks     = ODMModel.after_callbacks

      ODMModel.before_callbacks    = {}
      ODMModel.after_callbacks     = {}
Пример #5
0
 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")
Пример #6
0
   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()
Пример #7
0
    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)
Пример #8
0
    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()
Пример #9
0
   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)
Пример #10
0
 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 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()
Пример #12
0
 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)
Пример #13
0
 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)
Пример #14
0
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  ]
Пример #15
0
   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)
Пример #16
0
   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)
Пример #17
0
class ODMModelTest(unittest.TestCase):
   def setUp(self):
      self.odm = ODMModel( { "pippo" : "pluto", "mickey": "paperino" } )
      self.old_before_callbacks    = ODMModel.before_callbacks
      self.old_after_callbacks     = ODMModel.after_callbacks

      ODMModel.before_callbacks    = {}
      ODMModel.after_callbacks     = {}

   def tearDown(self):
      ODMModel.before_callbacks    = self.old_before_callbacks
      ODMModel.after_callbacks     = self.old_after_callbacks

   def test_collection_name(self):
      self.assertEqual(self.odm.collection_name(), 'odmmodel')
      self.assertEqual(ODMModel.collection_name(), 'odmmodel')

   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(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_class_callbacks_are_saved(self):
      ODMModel.listen("before_save", "pippo")
      ODMModel.listen("before_save", "pluto")
      ODMModel.listen("before_save", "sempronio")

      self.assertTrue("pippo" in ODMModel.before_callbacks["ODMModel"]["save"])
      self.assertTrue("pluto" in ODMModel.before_callbacks["ODMModel"]["save"])
      self.assertTrue("sempronio" in ODMModel.before_callbacks["ODMModel"]["save"])

      self.assertEqual(["pippo", "pluto", "sempronio"], ODMModel.before_callbacks["ODMModel"]["save"] )

      ODMModel.listen("after_save", "pippo")
      ODMModel.listen("after_save","pluto")
      ODMModel.listen("after_save", "sempronio")

      self.assertTrue("pippo" in ODMModel.after_callbacks["ODMModel"]["save"])
      self.assertTrue("pluto" in ODMModel.after_callbacks["ODMModel"]["save"])
      self.assertTrue("sempronio" in ODMModel.after_callbacks["ODMModel"]["save"])

      self.assertEqual(["pippo", "pluto", "sempronio"], ODMModel.after_callbacks["ODMModel"]["save"] )

   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_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 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_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"], [])
Пример #18
0
    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)
Пример #19
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)
Пример #20
0
   def test_class_callbacks_are_saved(self):
      ODMModel.listen("before_save", "pippo")
      ODMModel.listen("before_save", "pluto")
      ODMModel.listen("before_save", "sempronio")

      self.assertTrue("pippo" in ODMModel.before_callbacks["ODMModel"]["save"])
      self.assertTrue("pluto" in ODMModel.before_callbacks["ODMModel"]["save"])
      self.assertTrue("sempronio" in ODMModel.before_callbacks["ODMModel"]["save"])

      self.assertEqual(["pippo", "pluto", "sempronio"], ODMModel.before_callbacks["ODMModel"]["save"] )

      ODMModel.listen("after_save", "pippo")
      ODMModel.listen("after_save","pluto")
      ODMModel.listen("after_save", "sempronio")

      self.assertTrue("pippo" in ODMModel.after_callbacks["ODMModel"]["save"])
      self.assertTrue("pluto" in ODMModel.after_callbacks["ODMModel"]["save"])
      self.assertTrue("sempronio" in ODMModel.after_callbacks["ODMModel"]["save"])

      self.assertEqual(["pippo", "pluto", "sempronio"], ODMModel.after_callbacks["ODMModel"]["save"] )
Пример #21
0
 def test_collection_name(self):
    self.assertEqual(self.odm.collection_name(), 'odmmodel')
    self.assertEqual(ODMModel.collection_name(), 'odmmodel')
Пример #22
0
    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)
Пример #23
0
   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"]
                        )
Пример #24
0
    def test_class_callbacks_are_saved(self):
        ODMModel.listen("before_save", "pippo")
        ODMModel.listen("before_save", "pluto")
        ODMModel.listen("before_save", "sempronio")

        self.assertTrue(
            "pippo" in ODMModel.before_callbacks["ODMModel"]["save"])
        self.assertTrue(
            "pluto" in ODMModel.before_callbacks["ODMModel"]["save"])
        self.assertTrue(
            "sempronio" in ODMModel.before_callbacks["ODMModel"]["save"])

        self.assertEqual(["pippo", "pluto", "sempronio"],
                         ODMModel.before_callbacks["ODMModel"]["save"])

        ODMModel.listen("after_save", "pippo")
        ODMModel.listen("after_save", "pluto")
        ODMModel.listen("after_save", "sempronio")

        self.assertTrue(
            "pippo" in ODMModel.after_callbacks["ODMModel"]["save"])
        self.assertTrue(
            "pluto" in ODMModel.after_callbacks["ODMModel"]["save"])
        self.assertTrue(
            "sempronio" in ODMModel.after_callbacks["ODMModel"]["save"])

        self.assertEqual(["pippo", "pluto", "sempronio"],
                         ODMModel.after_callbacks["ODMModel"]["save"])
Пример #25
0
 def __init__(self):
     self._config = ConfigManager("config/general.json")
     self._data_persistence = MongoDBPersistenceManager(self._config)
     ODMModel.set_pm(self._data_persistence)
     BuildingView.setup_collection()
Пример #26
0
 def __init__(self):
    self._config            = ConfigManager("config/general.json")
    self._data_persistence  = MongoDBPersistenceManager(self._config)
    ODMModel.set_pm( self._data_persistence )
    BuildingView.setup_collection()
Пример #27
0
    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"], [])
Пример #28
0
class ODMModelTest(unittest.TestCase):
    def setUp(self):
        self.odm = ODMModel({"pippo": "pluto", "mickey": "paperino"})
        self.old_before_callbacks = ODMModel.before_callbacks
        self.old_after_callbacks = ODMModel.after_callbacks

        ODMModel.before_callbacks = {}
        ODMModel.after_callbacks = {}

    def tearDown(self):
        ODMModel.before_callbacks = self.old_before_callbacks
        ODMModel.after_callbacks = self.old_after_callbacks

    def test_collection_name(self):
        self.assertEqual(self.odm.collection_name(), 'odmmodel')
        self.assertEqual(ODMModel.collection_name(), 'odmmodel')

    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(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_class_callbacks_are_saved(self):
        ODMModel.listen("before_save", "pippo")
        ODMModel.listen("before_save", "pluto")
        ODMModel.listen("before_save", "sempronio")

        self.assertTrue(
            "pippo" in ODMModel.before_callbacks["ODMModel"]["save"])
        self.assertTrue(
            "pluto" in ODMModel.before_callbacks["ODMModel"]["save"])
        self.assertTrue(
            "sempronio" in ODMModel.before_callbacks["ODMModel"]["save"])

        self.assertEqual(["pippo", "pluto", "sempronio"],
                         ODMModel.before_callbacks["ODMModel"]["save"])

        ODMModel.listen("after_save", "pippo")
        ODMModel.listen("after_save", "pluto")
        ODMModel.listen("after_save", "sempronio")

        self.assertTrue(
            "pippo" in ODMModel.after_callbacks["ODMModel"]["save"])
        self.assertTrue(
            "pluto" in ODMModel.after_callbacks["ODMModel"]["save"])
        self.assertTrue(
            "sempronio" in ODMModel.after_callbacks["ODMModel"]["save"])

        self.assertEqual(["pippo", "pluto", "sempronio"],
                         ODMModel.after_callbacks["ODMModel"]["save"])

    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_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 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_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"], [])
Пример #29
0
 def test_collection_name(self):
     self.assertEqual(self.odm.collection_name(), 'odmmodel')
     self.assertEqual(ODMModel.collection_name(), 'odmmodel')
Пример #30
0
   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"], [])
Пример #31
0
    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 tearDown(self):
    ODMModel.set_pm(self.old_pm)
Пример #33
0
   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: ""