Include module for desktop build
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright (c) 2002-2009 Zooko "Zooko" Wilcox-O'Hearn
|
||||
# This file is part of pyutil; see README.rst for licensing terms.
|
||||
|
||||
import random, sys, traceback, unittest
|
||||
|
||||
from pyutil.assertutil import _assert
|
||||
|
||||
from pyutil import dictutil
|
||||
|
||||
class EqButNotIs:
|
||||
def __init__(self, x):
|
||||
self.x = x
|
||||
self.hash = int(random.randrange(0, 2**31))
|
||||
def __repr__(self):
|
||||
return "<%s %s>" % (self.__class__.__name__, self.x,)
|
||||
def __hash__(self):
|
||||
return self.hash
|
||||
def __le__(self, other):
|
||||
return self.x <= other
|
||||
def __lt__(self, other):
|
||||
return self.x < other
|
||||
def __ge__(self, other):
|
||||
return self.x >= other
|
||||
def __gt__(self, other):
|
||||
return self.x > other
|
||||
def __ne__(self, other):
|
||||
return self.x != other
|
||||
def __eq__(self, other):
|
||||
return self.x == other
|
||||
|
||||
class Testy(unittest.TestCase):
|
||||
def _help_test_empty_dict(self, klass):
|
||||
d1 = klass()
|
||||
d2 = klass({})
|
||||
|
||||
self.failUnless(d1 == d2, "d1: %r, d2: %r" % (d1, d2,))
|
||||
self.failUnless(len(d1) == 0)
|
||||
self.failUnless(len(d2) == 0)
|
||||
|
||||
def _help_test_nonempty_dict(self, klass):
|
||||
d1 = klass({'a': 1, 'b': "eggs", 3: "spam",})
|
||||
d2 = klass({'a': 1, 'b': "eggs", 3: "spam",})
|
||||
|
||||
self.failUnless(d1 == d2)
|
||||
self.failUnless(len(d1) == 3, "%s, %s" % (len(d1), d1,))
|
||||
self.failUnless(len(d2) == 3)
|
||||
|
||||
def _help_test_eq_but_notis(self, klass):
|
||||
d = klass({'a': 3, 'b': EqButNotIs(3), 'c': 3})
|
||||
d.pop('b')
|
||||
|
||||
d.clear()
|
||||
d['a'] = 3
|
||||
d['b'] = EqButNotIs(3)
|
||||
d['c'] = 3
|
||||
d.pop('b')
|
||||
|
||||
d.clear()
|
||||
d['b'] = EqButNotIs(3)
|
||||
d['a'] = 3
|
||||
d['c'] = 3
|
||||
d.pop('b')
|
||||
|
||||
d.clear()
|
||||
d['a'] = EqButNotIs(3)
|
||||
d['c'] = 3
|
||||
d['a'] = 3
|
||||
|
||||
d.clear()
|
||||
fake3 = EqButNotIs(3)
|
||||
fake7 = EqButNotIs(7)
|
||||
d[fake3] = fake7
|
||||
d[3] = 7
|
||||
d[3] = 8
|
||||
_assert(filter(lambda x: x is 8, d.itervalues()))
|
||||
_assert(filter(lambda x: x is fake7, d.itervalues()))
|
||||
_assert(not filter(lambda x: x is 7, d.itervalues())) # The real 7 should have been ejected by the d[3] = 8.
|
||||
_assert(filter(lambda x: x is fake3, d.iterkeys()))
|
||||
_assert(filter(lambda x: x is 3, d.iterkeys()))
|
||||
d[fake3] = 8
|
||||
|
||||
d.clear()
|
||||
d[3] = 7
|
||||
fake3 = EqButNotIs(3)
|
||||
fake7 = EqButNotIs(7)
|
||||
d[fake3] = fake7
|
||||
d[3] = 8
|
||||
_assert(filter(lambda x: x is 8, d.itervalues()))
|
||||
_assert(filter(lambda x: x is fake7, d.itervalues()))
|
||||
_assert(not filter(lambda x: x is 7, d.itervalues())) # The real 7 should have been ejected by the d[3] = 8.
|
||||
_assert(filter(lambda x: x is fake3, d.iterkeys()))
|
||||
_assert(filter(lambda x: x is 3, d.iterkeys()))
|
||||
d[fake3] = 8
|
||||
|
||||
def test_em(self):
|
||||
for klass in (dictutil.UtilDict, dictutil.NumDict, dictutil.ValueOrderedDict,):
|
||||
# print "name of class: ", klass
|
||||
for helper in (self._help_test_empty_dict, self._help_test_nonempty_dict, self._help_test_eq_but_notis,):
|
||||
# print "name of test func: ", helper
|
||||
try:
|
||||
helper(klass)
|
||||
except:
|
||||
(etype, evalue, realtb) = sys.exc_info()
|
||||
traceback.print_exception(etype, evalue, realtb)
|
||||
self.fail(evalue)
|
||||
del realtb
|
||||
|
||||
def suite():
|
||||
suite = unittest.makeSuite(Testy, 'test')
|
||||
return suite
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright (c) 2002 Luke 'Artimage' Nelson
|
||||
# Copyright (c) 2005-2010 Zooko Wilcox-O'Hearn
|
||||
# This file is part of pyutil; see README.rst for licensing terms.
|
||||
|
||||
import os
|
||||
|
||||
try:
|
||||
from twisted.trial import unittest
|
||||
except ImportError, le:
|
||||
print "Skipping %s since it requires Twisted and Twisted could not be imported: %s" % (__name__, le,)
|
||||
else:
|
||||
from pyutil import PickleSaver, fileutil
|
||||
|
||||
class Thingie(PickleSaver.PickleSaver):
|
||||
def __init__(self, fname, delay=30):
|
||||
PickleSaver.PickleSaver.__init__(self, fname=fname, attrs={'tmp_store':'False'}, DELAY=delay)
|
||||
|
||||
class PickleSaverTest(unittest.TestCase):
|
||||
def _test_save_now(self, fname):
|
||||
thingie = Thingie(fname, delay=0)
|
||||
thingie.tmp_store = 'True'
|
||||
thingie.lazy_save() # Note: it was constructed with default save delay of 0.
|
||||
|
||||
def test_save_now(self):
|
||||
"""
|
||||
This test should create a lazy save object, save it with no delay and check if the file exists.
|
||||
"""
|
||||
tempdir = fileutil.NamedTemporaryDirectory()
|
||||
|
||||
fname = os.path.join(tempdir.name, "picklesavertest")
|
||||
self._test_save_now(fname)
|
||||
self.failUnless(os.path.isfile(fname), "The file [%s] does not exist." %(fname,))
|
||||
|
||||
tempdir.shutdown()
|
||||
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright (c) 2002-2009 Zooko Wilcox-O'Hearn
|
||||
# portions Copyright (c) 2001 Autonomous Zone Industries
|
||||
# This file is part of pyutil; see README.rst for licensing terms.
|
||||
#
|
||||
import unittest
|
||||
|
||||
from pyutil.xor import xor
|
||||
|
||||
# unit tests
|
||||
def _help_test(xf):
|
||||
assert xf('\000', '\000') == '\000'
|
||||
assert xf('\001', '\000') == '\001'
|
||||
assert xf('\001', '\001') == '\000'
|
||||
assert xf('\000\001', '\000\001') == '\000\000'
|
||||
assert xf('\100\101', '\000\101') == '\100\000'
|
||||
|
||||
class Testy(unittest.TestCase):
|
||||
def test_em(self):
|
||||
for xorfunc in (xor.py_xor, xor.py_xor_simple, xor.xor,):
|
||||
if callable(xorfunc):
|
||||
# print "testing xorfunc ", xorfunc
|
||||
_help_test(xorfunc)
|
||||
Reference in New Issue
Block a user