Guest User

Untitled

a guest
Nov 29th, 2018
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. import unittest
  2.  
  3. class DiffObjectTests(unittest.TestCase):
  4. def _getTarget(self, *args):
  5. from diffobject import DiffObject
  6. return DiffObject
  7.  
  8. def _makeOne(self, *args, **kwargs):
  9. return self._getTarget()(*args,**kwargs)
  10.  
  11. def test_as_fakeobject_in_not_changed(self):
  12. from collections import namedtuple
  13. User = namedtuple("User", "name password")
  14.  
  15. user = User(name = "name", password = "password")
  16. target = self._makeOne(user, fields=["name", "password"])
  17.  
  18. self.assertEquals(user.name, str(target.name))
  19. self.assertEquals(user.password, str(target.password))
  20.  
  21. def test_as_fakeobject_in_changed(self):
  22. from collections import namedtuple
  23. User = namedtuple("User", "name password")
  24.  
  25. user = User(name = "name", password = "password")
  26. target = self._makeOne(user, fields=["name", "password"])
  27.  
  28. target.name = "updated-name-whooo-heee"
  29.  
  30. self.assertEquals("updated-name-whooo-heee", str(target.name))
  31. self.assertEquals(user.password, str(target.password))
  32.  
  33. def test_checking_field_is_updated(self):
  34. from collections import namedtuple
  35. User = namedtuple("User", "name password")
  36.  
  37. user = User(name = "name", password = "password")
  38. target = self._makeOne(user, fields=["name", "password"])
  39.  
  40. self.assertFalse(target.name.changed)
  41. self.assertFalse(target.password.changed)
  42.  
  43. target.name = "updated-name-whooo-heee"
  44.  
  45. self.assertTrue(target.name.changed)
  46. self.assertFalse(target.password.changed)
  47.  
  48. def test_rollback(self):
  49. from collections import namedtuple
  50. User = namedtuple("User", "name password")
  51.  
  52. user = User(name = "name", password = "password")
  53. target = self._makeOne(user, fields=["name", "password"])
  54.  
  55. target.name = "updated-name-whooo-heee"
  56. self.assertEquals("updated-name-whooo-heee", str(target.name))
  57.  
  58. target.name.rollback()
  59. self.assertEquals(user.name, str(target.name))
  60.  
  61. def test_act_as_targeted_instance_method(self):
  62. class User(object):
  63. def __init__(self, name):
  64. self.name = name
  65.  
  66. def say(self, mes):
  67. return "%s: %s" % (self.name, mes)
  68.  
  69. user = User("Bob")
  70. target = self._makeOne(user, fields=["name"])
  71.  
  72. self.assertEquals(user.say(""), target.say(""))
  73.  
  74. target.name = "AAA"
  75. self.assertEquals("AAA: hello", target.say("hello"))
  76.  
  77. def test_act_as_targeted_instance_property(self):
  78. class User(object):
  79. def __init__(self, name):
  80. self.name = name
  81.  
  82. @property
  83. def double(self):
  84. return "%s: %s" % (self.name, self.name)
  85.  
  86. user = User("Bob")
  87. target = self._makeOne(user, fields=["name"])
  88.  
  89. self.assertEquals(user.double, target.double)
  90.  
  91. target.name = "AAA"
  92. self.assertEquals("AAA: AAA", target.double)
  93.  
  94.  
  95. if __name__ == "__main__":
  96. unittest.main()
Add Comment
Please, Sign In to add comment