def test_entries_w_direct_attrs(self): m = Manifest() m.add(["foo"], {"uid": 1234, "gid": 321}) m.add(["foo", "bar"], {"size": 123, "mode": 0o040755}) m.add(["foo", "bar", "baz"], {"xyzzy": "z", "a": "b", "mode": 0o100644}) s = StringIO() ManifestFileWriter().write(m, s, indent = " ") self.assertEqual(s.getvalue(), """\ foo {gid: 321, uid: 1234} bar {mode: 0o040755, size: 123} baz {a: b, mode: 0o100644, xyzzy: z} """)
class Test_Manifest_add(unittest.TestCase): def setUp(self): self.m = Manifest() def test_add_nothing_fails(self): self.assertRaises(ValueError, self.m.add, []) self.assertEqual(self.m, {}) def test_add_one(self): self.m.add(["foo"]) self.assertEqual(self.m, {"foo": {}}) def test_add_two(self): self.m.add(["foo"]) self.m.add(["bar"]) self.assertEqual(self.m, {"foo": {}, "bar": {}}) def test_add_sub(self): self.m.add(["foo"]) self.m.add(["foo", "sub"]) self.assertEqual(self.m, {"foo": {"sub": {}}}) def test_add_empty_fails(self): self.assertRaises(ValueError, self.m.add, [""]) self.assertEqual(self.m, {}) def test_add_empty_sub_fails(self): self.m.add(["foo"]) self.assertRaises(ValueError, self.m.add, ["foo", ""]) self.assertEqual(self.m, {"foo": {}}) def test_add_sub_without_parent_fails(self): self.assertRaises(ValueError, self.m.add, ["foo", "sub"]) self.assertEqual(self.m, {}) def test_add_one_w_attrs(self): self.m.add(["foo"], {"size": 123, "bar": "baz"}) self.assertEqual(self.m, {"foo": {}}) self.assertEqual(self.m["foo"].getattrs(), {"size": 123, "bar": "baz"}) def test_add_sub_w_attrs(self): self.m.add(["foo"], {"blarg": None}) self.m.add(["foo", "bar"], {"size": 123, "bar": "baz"}) self.assertEqual(self.m, {"foo": {"bar": {}}}) self.assertEqual(self.m["foo"].getattrs(), {"blarg": None}) self.assertEqual(self.m["foo"]["bar"].getattrs(), {"size": 123, "bar": "baz"})