| Conditions | 6 |
| Total Lines | 56 |
| Code Lines | 46 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | import unittest |
||
| 8 | def test_new_class(self): |
||
| 9 | class FooObject(RESTObject): |
||
| 10 | f = RESTProperty(float) |
||
| 11 | i = RESTProperty(int) |
||
| 12 | s = RESTProperty(str) |
||
| 13 | e = RESTProperty(enum("a", "b")) |
||
| 14 | |||
| 15 | f = FooObject(f="6.0", i="3", s="hello!") |
||
| 16 | self.assertEqual(f.f, 6.0) |
||
| 17 | self.assertEqual(f.i, 3) |
||
| 18 | self.assertEqual(f.s, "hello!") |
||
| 19 | |||
| 20 | with self.assertRaises(AttributeError): |
||
| 21 | f.e |
||
| 22 | |||
| 23 | self.assertEqual(f["f"], 6.0) |
||
| 24 | self.assertEqual(f["i"], 3) |
||
| 25 | self.assertEqual(f["s"], "hello!") |
||
| 26 | |||
| 27 | with self.assertRaises(KeyError): |
||
| 28 | f["e"] |
||
| 29 | with self.assertRaises(KeyError): |
||
| 30 | f["cat"] |
||
| 31 | with self.assertRaises(KeyError): |
||
| 32 | f["cat"] = 5 |
||
| 33 | |||
| 34 | self.assertEqual(len(f), 3) |
||
| 35 | self.assertEqual(set(f), set(["f", "i", "s"])) |
||
| 36 | self.assertEqual(set(f.keys()), set(["f", "i", "s"])) |
||
| 37 | self.assertEqual(set(f.values()), set([6.0, 3, "hello!"])) |
||
| 38 | self.assertEqual(set(f.items()), set([("f", 6.0), ("i", 3), ("s", "hello!")])) |
||
| 39 | |||
| 40 | f.e = "a" |
||
| 41 | self.assertEqual(f.e, "a") |
||
| 42 | self.assertEqual(f["e"], "a") |
||
| 43 | f["e"] = "b" |
||
| 44 | self.assertEqual(f.e, "b") |
||
| 45 | |||
| 46 | with self.assertRaises(ValueError): |
||
| 47 | f.e = "fubar" |
||
| 48 | |||
| 49 | f.f = sys.float_info.max |
||
| 50 | self.assertEqual(f.f, sys.float_info.max) |
||
| 51 | f.f = float("inf") |
||
| 52 | self.assertEqual(f.f, float("inf")) |
||
| 53 | f.f = None |
||
| 54 | self.assertEqual(f.f, None) |
||
| 55 | |||
| 56 | class BarObject(FooObject): |
||
| 57 | x = RESTProperty(str) |
||
| 58 | |||
| 59 | f = BarObject(f="6.0", i="3", s="hello!", x="5") |
||
| 60 | self.assertEqual(f.f, 6.0) |
||
| 61 | self.assertEqual(f.i, 3) |
||
| 62 | self.assertEqual(f.s, "hello!") |
||
| 63 | self.assertEqual(f.x, "5") |
||
| 64 |