diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-11-28 14:19:44 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-11-28 14:19:44 -0500 |
commit | 58b29394337b5a51ce71e96cc4ba6fd68218a999 (patch) | |
tree | 29070391c9935ed3079a9108fe6fb2dd78e95d7b /test/lib/pickleable.py | |
parent | 94bb2f428e6408c675c306cafb4683c88b48b3dd (diff) | |
parent | fd4f39648aa7949e2c64626982e401fcbc928e1f (diff) | |
download | sqlalchemy-58b29394337b5a51ce71e96cc4ba6fd68218a999.tar.gz |
- sqlalchemy.test and nose plugin moves back to being entirely
outside of "sqlalchemy" and under "test/".
Rationale:
- coverage plugin works without issue, without need for an awkward
additional package install
- command line for "nosetests" isn't polluted with SQLAlchemy options
[ticket:1949]
Diffstat (limited to 'test/lib/pickleable.py')
-rw-r--r-- | test/lib/pickleable.py | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/test/lib/pickleable.py b/test/lib/pickleable.py new file mode 100644 index 000000000..9794e424d --- /dev/null +++ b/test/lib/pickleable.py @@ -0,0 +1,75 @@ +""" + +some objects used for pickle tests, declared in their own module so that they +are easily pickleable. + +""" + + +class Foo(object): + def __init__(self, moredata): + self.data = 'im data' + self.stuff = 'im stuff' + self.moredata = moredata + __hash__ = object.__hash__ + def __eq__(self, other): + return other.data == self.data and other.stuff == self.stuff and other.moredata==self.moredata + + +class Bar(object): + def __init__(self, x, y): + self.x = x + self.y = y + __hash__ = object.__hash__ + def __eq__(self, other): + return other.__class__ is self.__class__ and other.x==self.x and other.y==self.y + def __str__(self): + return "Bar(%d, %d)" % (self.x, self.y) + +class OldSchool: + def __init__(self, x, y): + self.x = x + self.y = y + def __eq__(self, other): + return other.__class__ is self.__class__ and other.x==self.x and other.y==self.y + +class OldSchoolWithoutCompare: + def __init__(self, x, y): + self.x = x + self.y = y + +class BarWithoutCompare(object): + def __init__(self, x, y): + self.x = x + self.y = y + def __str__(self): + return "Bar(%d, %d)" % (self.x, self.y) + + +class NotComparable(object): + def __init__(self, data): + self.data = data + + def __hash__(self): + return id(self) + + def __eq__(self, other): + return NotImplemented + + def __ne__(self, other): + return NotImplemented + + +class BrokenComparable(object): + def __init__(self, data): + self.data = data + + def __hash__(self): + return id(self) + + def __eq__(self, other): + raise NotImplementedError + + def __ne__(self, other): + raise NotImplementedError + |