Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(81)

Unified Diff: mojo/public/tools/bindings/pylib/mojom/generate/mojom_translator_unittest.py

Issue 1427893002: Handle contained declarations for interfaces and structs. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/public/tools/bindings/pylib/mojom/generate/mojom_translator.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/tools/bindings/pylib/mojom/generate/mojom_translator_unittest.py
diff --git a/mojo/public/tools/bindings/pylib/mojom/generate/mojom_translator_unittest.py b/mojo/public/tools/bindings/pylib/mojom/generate/mojom_translator_unittest.py
index 17840490329fbc5690e1d23a4beddf6397a85fb9..b4c8001105cf9048fea831048058bb6444a5ed94 100644
--- a/mojo/public/tools/bindings/pylib/mojom/generate/mojom_translator_unittest.py
+++ b/mojo/public/tools/bindings/pylib/mojom/generate/mojom_translator_unittest.py
@@ -238,7 +238,7 @@ class TestUserDefinedTypeFromMojom(unittest.TestCase):
enum = module.Enum()
translator = mojom_translator.FileTranslator(graph, file_name)
translator.EnumFromMojom(
- enum, mojom_types_mojom.UserDefinedType(enum_type=mojom_enum), None)
+ enum, mojom_types_mojom.UserDefinedType(enum_type=mojom_enum))
self.assertEquals(translator._module, enum.module)
self.assertEquals(mojom_enum.decl_data.short_name, enum.name)
@@ -448,6 +448,45 @@ class TestUserDefinedTypeFromMojom(unittest.TestCase):
self.assertEquals(module.UINT64, param.kind)
self.assertEquals(mojom_param.decl_data.declared_ordinal, param.ordinal)
+ def test_contained_declarations(self):
+ graph = mojom_files_mojom.MojomFileGraph()
+ file_name = 'root/f.mojom'
+
+ mojom_enum = mojom_types_mojom.MojomEnum(
+ values=[],
+ decl_data=mojom_types_mojom.DeclarationData(
+ short_name='AnEnum',
+ source_file_info=mojom_types_mojom.SourceFileInfo(
+ file_name=file_name)))
+ graph.resolved_types = {
+ 'enum_key': mojom_types_mojom.UserDefinedType(enum_type=mojom_enum)}
+
+ mojom_const = mojom_types_mojom.DeclaredConstant(
+ decl_data=mojom_types_mojom.DeclarationData(short_name='AConst'),
+ type=mojom_types_mojom.Type(
+ simple_type=mojom_types_mojom.SimpleType.INT64),
+ value=mojom_types_mojom.Value(
+ literal_value=mojom_types_mojom.LiteralValue(
+ int64_value=30)))
+ user_defined_value = mojom_types_mojom.UserDefinedValue()
+ user_defined_value.declared_constant = mojom_const
+ graph.resolved_values = {'value_key': user_defined_value}
+
+ contained_declarations = mojom_types_mojom.ContainedDeclarations(
+ enums=['enum_key'], constants=['value_key'])
+
+ translator = mojom_translator.FileTranslator(graph, file_name)
+ struct = module.Struct(name='parent')
+ translator.PopulateContainedDeclarationsFromMojom(
+ struct, contained_declarations)
+
+ self.assertEquals(
+ 'parent.' + mojom_enum.decl_data.short_name, struct.enums[0].name)
+ self.assertEquals(struct, struct.enums[0].parent_kind)
+ self.assertEquals(
+ mojom_const.decl_data.short_name, struct.constants[0].name)
+ self.assertEquals(struct, struct.constants[0].parent_kind)
+
@unittest.skipUnless(bindings_imported, 'Could not import python bindings.')
class TestEvalValue(unittest.TestCase):
« no previous file with comments | « mojo/public/tools/bindings/pylib/mojom/generate/mojom_translator.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698