|
10 | 10 | ) |
11 | 11 | S1, = SERIES |
12 | 12 |
|
| 13 | +FAKE_NESTED_OPTIONS = { |
| 14 | + 'level1': { |
| 15 | + 'level2': { |
| 16 | + 'a':1, |
| 17 | + 'level3': { |
| 18 | + 'b':2}}}, |
| 19 | + 'c':3} |
| 20 | + |
| 21 | + |
| 22 | + |
13 | 23 | class TestFlot(unittest.TestCase): |
14 | 24 |
|
15 | 25 | def setUp(self): |
@@ -64,11 +74,40 @@ def test_series_json(self): |
64 | 74 | self.assertEqual(json.dumps([series]), self.flot.series_json) |
65 | 75 |
|
66 | 76 | def test_series_with_label_json(self): |
67 | | - "make sure series with label converts to JSON properly" |
| 77 | + "make sure series with label converts to JSON properly" |
68 | 78 | series = {'data': S1, 'label': 'label1'} |
69 | 79 | self.flot.add_series(S1, 'label1') |
70 | 80 | self.assertEqual(json.dumps([series]), self.flot.series_json) |
71 | | - |
72 | | - def test_options_json(self): |
| 81 | + |
| 82 | + def test_empty_options_json(self): |
73 | 83 | "make sure conversion to JSON works for default options" |
74 | 84 | self.assertEqual("{}", self.flot.options_json) |
| 85 | + |
| 86 | + def test_options(self): |
| 87 | + "make sure options are applied correctly for a Flot subclass" |
| 88 | + class MyFlot(Flot): |
| 89 | + options = FAKE_NESTED_OPTIONS |
| 90 | + |
| 91 | + f = MyFlot() |
| 92 | + self.assertEqual(f._options, FAKE_NESTED_OPTIONS) |
| 93 | + self.assertEqual(f.options_json, |
| 94 | + json.dumps(FAKE_NESTED_OPTIONS)) |
| 95 | + |
| 96 | + def test_options_inheritance(self): |
| 97 | + "make sure options in an inheritance chain are applied correctly" |
| 98 | + class MyFlot(Flot): |
| 99 | + options = FAKE_NESTED_OPTIONS |
| 100 | + |
| 101 | + class AnotherFlot(MyFlot): |
| 102 | + options = { |
| 103 | + 'level1': { |
| 104 | + 'd': 4, |
| 105 | + 'level2': { |
| 106 | + 'a': 10}}} |
| 107 | + |
| 108 | + f = AnotherFlot() |
| 109 | + self.assertEqual(f._options, |
| 110 | + {'level1': {'d': 4, 'level2': {'a':10, 'level3': {'b':2}}}, 'c':3}) |
| 111 | + #TODO will the dumped dict string match work across platforms? |
| 112 | + self.assertEqual(f.options_json, |
| 113 | + '{"level1": {"level2": {"a": 10, "level3": {"b": 2}}, "d": 4}, "c": 3}') |
0 commit comments