Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import unittest
- class DiffObjectTests(unittest.TestCase):
- def _getTarget(self, *args):
- from diffobject import DiffObject
- return DiffObject
- def _makeOne(self, *args, **kwargs):
- return self._getTarget()(*args,**kwargs)
- def test_as_fakeobject_in_not_changed(self):
- from collections import namedtuple
- User = namedtuple("User", "name password")
- user = User(name = "name", password = "password")
- target = self._makeOne(user, fields=["name", "password"])
- self.assertEquals(user.name, str(target.name))
- self.assertEquals(user.password, str(target.password))
- def test_as_fakeobject_in_changed(self):
- from collections import namedtuple
- User = namedtuple("User", "name password")
- user = User(name = "name", password = "password")
- target = self._makeOne(user, fields=["name", "password"])
- target.name = "updated-name-whooo-heee"
- self.assertEquals("updated-name-whooo-heee", str(target.name))
- self.assertEquals(user.password, str(target.password))
- def test_checking_field_is_updated(self):
- from collections import namedtuple
- User = namedtuple("User", "name password")
- user = User(name = "name", password = "password")
- target = self._makeOne(user, fields=["name", "password"])
- self.assertFalse(target.name.changed)
- self.assertFalse(target.password.changed)
- target.name = "updated-name-whooo-heee"
- self.assertTrue(target.name.changed)
- self.assertFalse(target.password.changed)
- def test_rollback(self):
- from collections import namedtuple
- User = namedtuple("User", "name password")
- user = User(name = "name", password = "password")
- target = self._makeOne(user, fields=["name", "password"])
- target.name = "updated-name-whooo-heee"
- self.assertEquals("updated-name-whooo-heee", str(target.name))
- target.name.rollback()
- self.assertEquals(user.name, str(target.name))
- def test_act_as_targeted_instance_method(self):
- class User(object):
- def __init__(self, name):
- self.name = name
- def say(self, mes):
- return "%s: %s" % (self.name, mes)
- user = User("Bob")
- target = self._makeOne(user, fields=["name"])
- self.assertEquals(user.say(""), target.say(""))
- target.name = "AAA"
- self.assertEquals("AAA: hello", target.say("hello"))
- def test_act_as_targeted_instance_property(self):
- class User(object):
- def __init__(self, name):
- self.name = name
- @property
- def double(self):
- return "%s: %s" % (self.name, self.name)
- user = User("Bob")
- target = self._makeOne(user, fields=["name"])
- self.assertEquals(user.double, target.double)
- target.name = "AAA"
- self.assertEquals("AAA: AAA", target.double)
- if __name__ == "__main__":
- unittest.main()
Add Comment
Please, Sign In to add comment