1 # -*- coding: utf-8 -*-
3 # Copyright (C) 2008 John Paulett (john -at- 7oars.com)
6 # This software is licensed as described in the file COPYING, which
7 # you should have received as part of this distribution.
14 import jsonpickle
.util
15 from jsonpickle
.util
import *
16 from jsonpickle
.tests
.classes
import Thing
, ListSubclass
, DictSubclass
18 class IsPrimitiveTestCase(unittest
.TestCase
):
20 self
.assertTrue(is_primitive(0))
21 self
.assertTrue(is_primitive(3))
22 self
.assertTrue(is_primitive(-3))
25 self
.assertTrue(is_primitive(0))
26 self
.assertTrue(is_primitive(3.5))
27 self
.assertTrue(is_primitive(-3.5))
28 self
.assertTrue(is_primitive(float(3)))
31 self
.assertTrue(is_primitive(long(3)))
34 self
.assertTrue(is_primitive(True))
35 self
.assertTrue(is_primitive(False))
38 self
.assertTrue(is_primitive(None))
41 self
.assertTrue(is_primitive('hello'))
42 self
.assertTrue(is_primitive(''))
44 def test_unicode(self
):
45 self
.assertTrue(is_primitive(u
'hello'))
46 self
.assertTrue(is_primitive(u
''))
47 self
.assertTrue(is_primitive(unicode('hello')))
50 self
.assertFalse(is_primitive([]))
51 self
.assertFalse(is_primitive([4, 4]))
54 self
.assertFalse(is_primitive({'key':'value'}))
55 self
.assertFalse(is_primitive({}))
58 self
.assertFalse(is_primitive((1, 3)))
59 self
.assertFalse(is_primitive((1,)))
62 self
.assertFalse(is_primitive(set([1, 3])))
64 def test_object(self
):
65 self
.assertFalse(is_primitive(Thing('test')))
67 class IsCollection(unittest
.TestCase
):
69 self
.assertTrue(is_list([1, 2]))
72 self
.assertTrue(is_set(set([1, 2])))
75 self
.assertTrue(is_tuple((1, 2)))
78 self
.assertFalse(is_list({'key':'value'}))
79 self
.assertFalse(is_set({'key':'value'}))
80 self
.assertFalse(is_tuple({'key':'value'}))
83 self
.assertFalse(is_list(1))
84 self
.assertFalse(is_set(1))
85 self
.assertFalse(is_tuple(1))
87 class IsDictionary(unittest
.TestCase
):
89 self
.assertTrue(is_dictionary({'key':'value'}))
92 self
.assertFalse(is_dictionary([1, 2]))
94 class IsDictionarySubclass(unittest
.TestCase
):
95 def test_subclass(self
):
96 self
.assertTrue(is_dictionary_subclass(DictSubclass()))
99 self
.assertFalse(is_dictionary_subclass({'key':'value'}))
101 class IsCollectionSubclass(unittest
.TestCase
):
102 def test_subclass(self
):
103 self
.assertTrue(is_collection_subclass(ListSubclass()))
106 self
.assertFalse(is_collection_subclass([]))
108 class IsNonComplex(unittest
.TestCase
):
110 self
.time
= time
.struct_time('123456789')
112 def test_time_struct(self
):
113 self
.assertTrue(is_noncomplex(self
.time
))
115 def test_other(self
):
116 self
.assertFalse(is_noncomplex('a'))
118 class IsRepr(unittest
.TestCase
):
120 self
.time
= datetime
.datetime
.now()
122 def test_datetime(self
):
123 self
.assertTrue(is_repr(self
.time
))
126 self
.assertTrue(is_repr(self
.time
.date()))
129 self
.assertTrue(is_repr(self
.time
.time()))
131 def test_timedelta(self
):
132 self
.assertTrue(is_repr(datetime
.timedelta(4)))
134 def test_object(self
):
135 self
.assertFalse(is_repr(object()))
138 suite
= unittest
.TestSuite()
139 suite
.addTest(unittest
.makeSuite(IsPrimitiveTestCase
))
140 suite
.addTest(unittest
.makeSuite(IsCollection
))
141 suite
.addTest(unittest
.makeSuite(IsDictionary
))
142 suite
.addTest(unittest
.makeSuite(IsDictionarySubclass
))
143 suite
.addTest(unittest
.makeSuite(IsCollectionSubclass
))
144 suite
.addTest(unittest
.makeSuite(IsNonComplex
))
145 suite
.addTest(unittest
.makeSuite(IsRepr
))
146 suite
.addTest(doctest
.DocTestSuite(jsonpickle
.util
))
149 if __name__
== '__main__':
150 unittest
.main(defaultTest
='suite')