Skip to content

Commit b770c6a

Browse files
committed
Added tests for the Config class
1 parent 82cffa0 commit b770c6a

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

tests/test_config.py

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#!/usr/bin/python
2+
# -- Content-Encoding: UTF-8 --
3+
"""
4+
Tests the Config class
5+
6+
:license: Apache License 2.0
7+
"""
8+
9+
# JSON-RPC library
10+
from jsonrpclib.config import Config
11+
12+
# Standard library
13+
import unittest
14+
15+
# ------------------------------------------------------------------------------
16+
17+
18+
class ConfigTests(unittest.TestCase):
19+
"""
20+
Tests the methods of the Config class
21+
"""
22+
def compare_config(self, config1, config2):
23+
"""
24+
Compares the given configuration objects
25+
"""
26+
self.assertIsNot(config1, config2)
27+
for member in ('version', 'use_jsonclass', 'content_type',
28+
'user_agent', 'ignore_attribute'):
29+
self.assertEqual(getattr(config1, member),
30+
getattr(config2, member))
31+
32+
# Local classes
33+
self.assertIsNot(config1.classes, config2.classes)
34+
self.assertDictEqual(config1.classes, config2.classes)
35+
36+
# Custom type serializers
37+
self.assertIsNot(config1.serialize_handlers,
38+
config2.serialize_handlers)
39+
self.assertDictEqual(config1.serialize_handlers,
40+
config2.serialize_handlers)
41+
42+
def test_copy(self):
43+
"""
44+
Tests the configuration copy
45+
"""
46+
# Basic configuration
47+
config1 = Config()
48+
self.compare_config(config1, config1.copy())
49+
50+
# Custom values
51+
config1.version = 1.0
52+
config1.content_type = "text/plain"
53+
config1.user_agent = "test_agent"
54+
config1.serialize_method = "_new_method"
55+
config1.ignore_attribute = "_new_method"
56+
self.compare_config(config1, config1.copy())
57+
58+
# Handlers
59+
def handler(obj, serialize_method, ignore_attribute, ignore, config):
60+
pass
61+
62+
config1.serialize_handlers[int] = handler
63+
self.compare_config(config1, config1.copy())
64+
65+
# Local classes
66+
class A:
67+
pass
68+
class B:
69+
pass
70+
71+
config1.classes.add(A)
72+
config1.classes.add(B, "like_B")
73+
74+
self.assertIs(config1.classes["A"], A)
75+
self.assertIs(config1.classes["like_B"], B)
76+
self.assertNotIn("B", config1.classes)
77+
self.compare_config(config1, config1.copy())

0 commit comments

Comments
 (0)