def test_find_doesnt_return_object_made_with_new(self):
   bs = self.create_backing_store({})
   manager = BackedObjectManager(bs)
   manager.initialize()
   war_machine = manager.new("War Machine")
   war_machine.set_backed_value("identity", "James Rhodes")
   self.assertIsNone(manager.find("War Machine"))
 def test_find_returns_same_object_between_calls(self):
   bs = self.create_backing_store({ "Iron Man": {} })
   manager = BackedObjectManager(bs)
   manager.initialize()
   first_result = manager.find("Iron Man")
   self.assertIsNotNone(first_result)
   second_result = manager.find("Iron Man")
   self.assertIsNotNone(second_result)
   self.assertIs(first_result, second_result)
 def test_all(self):
   bs = self.create_backing_store({
     "Iron Man": {},
     "War Machine": {},
   })
   manager = BackedObjectManager(bs)
   manager.initialize()
   all_objects = manager.all()
   self.assertIs(len(all_objects), 2)
   obj1 = all_objects[0]
   obj2 = all_objects[1]
   self.assertFalse(obj1.identifier == obj2.identifier)
   self.assertIn(obj1.identifier, ["Iron Man", "War Machine"])
   self.assertIn(obj2.identifier, ["Iron Man", "War Machine"])
  def test_no_objects_from_store_before_initialize(self):
    bs = self.create_backing_store({
      "Iron Man": {
        "identity": "Tony Stark",
      },
      "War Machine": {
        "identity": "James Rhodes",
        "alias": "Rhodey",
      },
    })
    manager = BackedObjectManager(bs)
    iron_man = manager.find("Iron Man")
    war_machine = manager.find("War Machine")

    self.assertIsNone(iron_man)
    self.assertIsNone(war_machine)
  def test_initialize_loads_from_store(self):
    bs = self.create_backing_store({
      "Iron Man": {
        "identity": "Tony Stark",
      },
      "War Machine": {
        "identity": "James Rhodes",
        "alias": "Rhodey",
      },
    })
    manager = BackedObjectManager(bs)
    manager.initialize()
    iron_man = manager.find("Iron Man")
    war_machine = manager.find("War Machine")

    self.assertIsNotNone(iron_man)
    self.assertEquals(iron_man.identifier, "Iron Man")
    self.assertEquals(iron_man.backed_value("identity"), "Tony Stark")

    self.assertIsNotNone(war_machine)
    self.assertEquals(war_machine.identifier, "War Machine")
    self.assertEquals(war_machine.backed_value("identity"), "James Rhodes")
    self.assertEquals(war_machine.backed_value("alias"), "Rhodey")
Example #6
0
 def setUp(self):
     self.tempdir = tempfile.mkdtemp()
     self.tempfile = os.path.join(self.tempdir, "test.ini")
     self.backing_store = ConfigFileBackingStore(self.tempfile)
     self.manager = BackedObjectManager(self.backing_store,
                                        BackedObjectBackedObjectAdapter())
Example #7
0
class BackedObjectManagerTests(unittest.TestCase):
    def setUp(self):
        self.tempdir = tempfile.mkdtemp()
        self.tempfile = os.path.join(self.tempdir, "test.ini")
        self.backing_store = ConfigFileBackingStore(self.tempfile)
        self.manager = BackedObjectManager(self.backing_store,
                                           BackedObjectBackedObjectAdapter())

    def tearDown(self):
        shutil.rmtree(self.tempdir)

    def populate_backing_store(self, data):
        for ident in data.keys():
            self.backing_store.add_identifier(ident)
            ident_data = data[ident]
            for key in ident_data.keys():
                value = ident_data[key]
                self.backing_store.set(ident, key, value)
        self.backing_store.save()

    def test_reading_data_from_store(self):
        self.populate_backing_store({
            "Iron Man": {
                "identity": "Tony Stark",
            },
            "War Machine": {
                "identity": "James Rhodes",
                "alias": "Rhodey",
            },
        })
        iron_man = self.manager.find("Iron Man")
        war_machine = self.manager.find("War Machine")

        self.assertIsNotNone(iron_man)
        self.assertEquals(iron_man.identifier, "Iron Man")
        self.assertEquals(iron_man.backed_value("identity"), "Tony Stark")

        self.assertIsNotNone(war_machine)
        self.assertEquals(war_machine.identifier, "War Machine")
        self.assertEquals(war_machine.backed_value("identity"), "James Rhodes")
        self.assertEquals(war_machine.backed_value("alias"), "Rhodey")

    def test_all(self):
        self.populate_backing_store({
            "Iron Man": {},
            "War Machine": {},
        })
        all_objects = self.manager.all()
        self.assertIs(len(all_objects), 2)
        obj1 = all_objects[0]
        obj2 = all_objects[1]
        self.assertFalse(obj1.identifier == obj2.identifier)
        self.assertIn(obj1.identifier, ["Iron Man", "War Machine"])
        self.assertIn(obj2.identifier, ["Iron Man", "War Machine"])

    def test_find_returns_none_with_invalid_identifier(self):
        im = self.manager.find("Iron Man")
        self.assertIsNone(self.manager.find("Iron Man"))

    def test_find_returns_non_none_with_valid_identifier(self):
        self.populate_backing_store({"Iron Man": {}})
        self.assertIsNotNone(self.manager.find("Iron Man"))

    def test_find_returns_same_object_between_calls(self):
        self.populate_backing_store({"Iron Man": {}})
        first_result = self.manager.find("Iron Man")
        self.assertIsNotNone(first_result)
        second_result = self.manager.find("Iron Man")
        self.assertIsNotNone(second_result)
        self.assertIs(first_result, second_result)

    def test_find_after_set_object_for_identifier_returns_same_object_that_was_set(
            self):
        war_machine = BackedObject(self.backing_store, "War Machine")
        self.manager.set_object_for_identifier(war_machine, "War Machine")
        self.assertEquals(self.manager.find("War Machine"), war_machine)
 def test_find_returns_non_none_with_valid_identifier(self):
   bs = self.create_backing_store({ "Iron Man": {} })
   manager = BackedObjectManager(bs)
   manager.initialize()
   self.assertIsNotNone(manager.find("Iron Man"))
 def test_find_returns_object_made_with_create(self):
   bs = self.create_backing_store({})
   manager = BackedObjectManager(bs)
   manager.initialize()
   war_machine = manager.create("War Machine")
   self.assertEquals(manager.find("War Machine"), war_machine)
 def setUp(self):
   self.tempdir = tempfile.mkdtemp()
   self.tempfile = os.path.join(self.tempdir, "test.ini")
   self.backing_store = ConfigFileBackingStore(self.tempfile)
   self.adapter = BackedObjectBackedObjectAdapter()
   self.manager = BackedObjectManager(self.backing_store, self.adapter)
class BackedObjectManagerTests(unittest.TestCase):

  def setUp(self):
    self.tempdir = tempfile.mkdtemp()
    self.tempfile = os.path.join(self.tempdir, "test.ini")
    self.backing_store = ConfigFileBackingStore(self.tempfile)
    self.adapter = BackedObjectBackedObjectAdapter()
    self.manager = BackedObjectManager(self.backing_store, self.adapter)

  def tearDown(self):
    shutil.rmtree(self.tempdir)

  def populate_backing_store(self, data):
    for ident in data.keys():
      self.backing_store.add_identifier(ident)
      ident_data = data[ident]
      for key in ident_data.keys():
        value = ident_data[key]
        self.backing_store.set(ident, key, value)
    self.backing_store.save()

  def test_reading_data_from_store(self):
    self.populate_backing_store({
        "Iron Man": {
            "identity": "Tony Stark",
        },
        "War Machine": {
            "identity": "James Rhodes",
            "alias": "Rhodey",
        },
    })
    iron_man = self.manager.find("Iron Man")
    war_machine = self.manager.find("War Machine")

    self.assertIsNotNone(iron_man)
    self.assertEquals(iron_man.identifier, "Iron Man")
    self.assertEquals(iron_man.backed_value("identity"), "Tony Stark")

    self.assertIsNotNone(war_machine)
    self.assertEquals(war_machine.identifier, "War Machine")
    self.assertEquals(war_machine.backed_value("identity"), "James Rhodes")
    self.assertEquals(war_machine.backed_value("alias"), "Rhodey")

  def test_all(self):
    self.populate_backing_store({
        "Iron Man": {},
        "War Machine": {},
    })
    all_objects = self.manager.all()
    self.assertIs(len(all_objects), 2)
    obj1 = all_objects[0]
    obj2 = all_objects[1]
    self.assertFalse(obj1.identifier == obj2.identifier)
    self.assertIn(obj1.identifier, ["Iron Man", "War Machine"])
    self.assertIn(obj2.identifier, ["Iron Man", "War Machine"])

  def test_find_returns_none_with_invalid_identifier(self):
    im = self.manager.find("Iron Man")
    self.assertIsNone(self.manager.find("Iron Man"))

  def test_find_returns_non_none_with_valid_identifier(self):
    self.populate_backing_store({"Iron Man": {}})
    self.assertIsNotNone(self.manager.find("Iron Man"))

  def test_find_returns_same_object_between_calls(self):
    self.populate_backing_store({"Iron Man": {}})
    first_result = self.manager.find("Iron Man")
    self.assertIsNotNone(first_result)
    second_result = self.manager.find("Iron Man")
    self.assertIsNotNone(second_result)
    self.assertIs(first_result, second_result)

  def test_find_after_set_object_for_identifier_returns_same_object_that_was_set(self):
    war_machine = BackedObject(self.backing_store, "War Machine")
    self.manager.set_object_for_identifier(war_machine, "War Machine")
    self.assertEquals(self.manager.find("War Machine"), war_machine)

  def test_all_doesnt_include_objects_where_verification_fails(self):
    self.populate_backing_store({
        "Iron Man":     {},
        "War Machine":  {},
        "Whiplash":     {},
    })
    self.adapter.verifier = lambda obj: obj.identifier.startswith("W")
    identifiers = map(lambda obj: obj.identifier, self.manager.all())
    self.assertEqual(len(identifiers), 2)
    self.assertIn("War Machine", identifiers)
    self.assertIn("Whiplash", identifiers)

  def test_find_returns_none_for_object_where_verification_fails(self):
    self.populate_backing_store({"Iron Man": {}})
    self.adapter.verifier = lambda obj: False
    self.assertIsNone(self.manager.find("Iron Man"))