class SchemasTest(unittest.TestCase): def setUp(self): f = file(datafile('zoo.json')) discovery = f.read() f.close() discovery = simplejson.loads(discovery) self.sc = Schemas(discovery) def test_basic_formatting(self): self.assertEqual(sorted(LOAD_FEED.splitlines()), sorted(self.sc.prettyPrintByName('LoadFeed').splitlines())) def test_empty_edge_case(self): self.assertTrue('Unknown type' in self.sc.prettyPrintSchema({})) def test_simple_object(self): self.assertEqual({}, eval(self.sc.prettyPrintSchema({'type': 'object'}))) def test_string(self): self.assertEqual(type(""), type(eval(self.sc.prettyPrintSchema({'type': 'string'})))) def test_integer(self): self.assertEqual(type(20), type(eval(self.sc.prettyPrintSchema({'type': 'integer'})))) def test_number(self): self.assertEqual(type(1.2), type(eval(self.sc.prettyPrintSchema({'type': 'number'})))) def test_boolean(self): self.assertEqual(type(True), type(eval(self.sc.prettyPrintSchema({'type': 'boolean'})))) def test_string_default(self): self.assertEqual('foo', eval(self.sc.prettyPrintSchema({'type': 'string', 'default': 'foo'}))) def test_integer_default(self): self.assertEqual(20, eval(self.sc.prettyPrintSchema({'type': 'integer', 'default': 20}))) def test_number_default(self): self.assertEqual(1.2, eval(self.sc.prettyPrintSchema({'type': 'number', 'default': 1.2}))) def test_boolean_default(self): self.assertEqual(False, eval(self.sc.prettyPrintSchema({'type': 'boolean', 'default': False}))) def test_null(self): self.assertEqual(None, eval(self.sc.prettyPrintSchema({'type': 'null'}))) def test_any(self): self.assertEqual('', eval(self.sc.prettyPrintSchema({'type': 'any'}))) def test_array(self): self.assertEqual([{}], eval(self.sc.prettyPrintSchema({'type': 'array', 'items': {'type': 'object'}}))) def test_nested_references(self): feed = { 'items': [ { 'photo': { 'hash': 'A String', 'hashAlgorithm': 'A String', 'filename': 'A String', 'type': 'A String', 'size': 42 }, 'kind': 'zoo#animal', 'etag': 'A String', 'name': 'A String' } ], 'kind': 'zoo#animalFeed', 'etag': 'A String' } self.assertEqual(feed, eval(self.sc.prettyPrintByName('AnimalFeed'))) def test_additional_properties(self): items = { 'animals': { 'a_key': { 'photo': { 'hash': 'A String', 'hashAlgorithm': 'A String', 'filename': 'A String', 'type': 'A String', 'size': 42 }, 'kind': 'zoo#animal', 'etag': 'A String', 'name': 'A String' } }, 'kind': 'zoo#animalMap', 'etag': 'A String' } self.assertEqual(items, eval(self.sc.prettyPrintByName('AnimalMap'))) def test_unknown_name(self): self.assertRaises(KeyError, self.sc.prettyPrintByName, 'UknownSchemaThing')
class SchemasTest(unittest.TestCase): def setUp(self): f = open(datafile("zoo.json")) discovery = f.read() f.close() discovery = json.loads(discovery) self.sc = Schemas(discovery) def test_basic_formatting(self): self.assertEqual( sorted(LOAD_FEED.splitlines()), sorted(self.sc.prettyPrintByName("LoadFeed").splitlines()), ) def test_empty_edge_case(self): self.assertTrue("Unknown type" in self.sc.prettyPrintSchema({})) def test_simple_object(self): self.assertEqual({}, eval(self.sc.prettyPrintSchema({"type": "object"}))) def test_string(self): self.assertEqual( type(""), type(eval(self.sc.prettyPrintSchema({"type": "string"}))) ) def test_integer(self): self.assertEqual( type(20), type(eval(self.sc.prettyPrintSchema({"type": "integer"}))) ) def test_number(self): self.assertEqual( type(1.2), type(eval(self.sc.prettyPrintSchema({"type": "number"}))) ) def test_boolean(self): self.assertEqual( type(True), type(eval(self.sc.prettyPrintSchema({"type": "boolean"}))) ) def test_string_default(self): self.assertEqual( "foo", eval(self.sc.prettyPrintSchema({"type": "string", "default": "foo"})) ) def test_integer_default(self): self.assertEqual( 20, eval(self.sc.prettyPrintSchema({"type": "integer", "default": 20})) ) def test_number_default(self): self.assertEqual( 1.2, eval(self.sc.prettyPrintSchema({"type": "number", "default": 1.2})) ) def test_boolean_default(self): self.assertEqual( False, eval(self.sc.prettyPrintSchema({"type": "boolean", "default": False})), ) def test_null(self): self.assertEqual(None, eval(self.sc.prettyPrintSchema({"type": "null"}))) def test_any(self): self.assertEqual("", eval(self.sc.prettyPrintSchema({"type": "any"}))) def test_array(self): self.assertEqual( [{}], eval( self.sc.prettyPrintSchema( {"type": "array", "items": {"type": "object"}} ) ), ) def test_nested_references(self): feed = { "items": [ { "photo": { "hash": "A String", "hashAlgorithm": "A String", "filename": "A String", "type": "A String", "size": 42, }, "kind": "zoo#animal", "etag": "A String", "name": "A String", } ], "kind": "zoo#animalFeed", "etag": "A String", } self.assertEqual(feed, eval(self.sc.prettyPrintByName("AnimalFeed"))) def test_additional_properties(self): items = { "animals": { "a_key": { "photo": { "hash": "A String", "hashAlgorithm": "A String", "filename": "A String", "type": "A String", "size": 42, }, "kind": "zoo#animal", "etag": "A String", "name": "A String", } }, "kind": "zoo#animalMap", "etag": "A String", } self.assertEqual(items, eval(self.sc.prettyPrintByName("AnimalMap"))) def test_unknown_name(self): self.assertRaises(KeyError, self.sc.prettyPrintByName, "UknownSchemaThing")