@@ -41,8 +41,8 @@ def test_empty_class(generate):
41
41
assert generate ([
42
42
schema .Class (name = "MyClass" ),
43
43
]) == [
44
- cpp .Class (name = "MyClass" , final = True , trap_name = "MyClasses" )
45
- ]
44
+ cpp .Class (name = "MyClass" , final = True , trap_name = "MyClasses" )
45
+ ]
46
46
47
47
48
48
def test_two_class_hierarchy (generate ):
@@ -51,9 +51,9 @@ def test_two_class_hierarchy(generate):
51
51
schema .Class (name = "A" , derived = {"B" }),
52
52
schema .Class (name = "B" , bases = ["A" ]),
53
53
]) == [
54
- base ,
55
- cpp .Class (name = "B" , bases = [base ], final = True , trap_name = "Bs" ),
56
- ]
54
+ base ,
55
+ cpp .Class (name = "B" , bases = [base ], final = True , trap_name = "Bs" ),
56
+ ]
57
57
58
58
59
59
@pytest .mark .parametrize ("type,expected" , [
@@ -62,22 +62,23 @@ def test_two_class_hierarchy(generate):
62
62
("boolean" , "bool" ),
63
63
("MyClass" , "TrapLabel<MyClassTag>" ),
64
64
])
65
- @pytest .mark .parametrize ("property_cls,optional,repeated,trap_name" , [
66
- (schema .SingleProperty , False , False , None ),
67
- (schema .OptionalProperty , True , False , "MyClassProps" ),
68
- (schema .RepeatedProperty , False , True , "MyClassProps" ),
69
- (schema .RepeatedOptionalProperty , True , True , "MyClassProps" ),
65
+ @pytest .mark .parametrize ("property_cls,optional,repeated,unordered,trap_name" , [
66
+ (schema .SingleProperty , False , False , False , None ),
67
+ (schema .OptionalProperty , True , False , False , "MyClassProps" ),
68
+ (schema .RepeatedProperty , False , True , False , "MyClassProps" ),
69
+ (schema .RepeatedOptionalProperty , True , True , False , "MyClassProps" ),
70
+ (schema .RepeatedUnorderedProperty , False , True , True , "MyClassProps" ),
70
71
])
71
- def test_class_with_field (generate , type , expected , property_cls , optional , repeated , trap_name ):
72
+ def test_class_with_field (generate , type , expected , property_cls , optional , repeated , unordered , trap_name ):
72
73
assert generate ([
73
74
schema .Class (name = "MyClass" , properties = [property_cls ("prop" , type )]),
74
75
]) == [
75
- cpp .Class (name = "MyClass" ,
76
- fields = [cpp .Field ("prop" , expected , is_optional = optional ,
77
- is_repeated = repeated , trap_name = trap_name )],
78
- trap_name = "MyClasses" ,
79
- final = True )
80
- ]
76
+ cpp .Class (name = "MyClass" ,
77
+ fields = [cpp .Field ("prop" , expected , is_optional = optional ,
78
+ is_repeated = repeated , is_unordered = unordered , trap_name = trap_name )],
79
+ trap_name = "MyClasses" ,
80
+ final = True )
81
+ ]
81
82
82
83
83
84
def test_class_field_with_null (generate , input ):
@@ -90,26 +91,26 @@ def test_class_field_with_null(generate, input):
90
91
schema .SingleProperty ("y" , "B" ),
91
92
])
92
93
]) == [
93
- a ,
94
- cpp .Class (name = "B" , bases = [a ], final = True , trap_name = "Bs" ,
95
- fields = [
96
- cpp .Field ("x" , "TrapLabel<ATag>" ),
97
- cpp .Field ("y" , "TrapLabel<BOrNoneTag>" ),
98
- ]),
99
- ]
94
+ a ,
95
+ cpp .Class (name = "B" , bases = [a ], final = True , trap_name = "Bs" ,
96
+ fields = [
97
+ cpp .Field ("x" , "TrapLabel<ATag>" ),
98
+ cpp .Field ("y" , "TrapLabel<BOrNoneTag>" ),
99
+ ]),
100
+ ]
100
101
101
102
102
103
def test_class_with_predicate (generate ):
103
104
assert generate ([
104
105
schema .Class (name = "MyClass" , properties = [
105
106
schema .PredicateProperty ("prop" )]),
106
107
]) == [
107
- cpp .Class (name = "MyClass" ,
108
- fields = [
109
- cpp .Field ("prop" , "bool" , trap_name = "MyClassProp" , is_predicate = True )],
110
- trap_name = "MyClasses" ,
111
- final = True )
112
- ]
108
+ cpp .Class (name = "MyClass" ,
109
+ fields = [
110
+ cpp .Field ("prop" , "bool" , trap_name = "MyClassProp" , is_predicate = True )],
111
+ trap_name = "MyClasses" ,
112
+ final = True )
113
+ ]
113
114
114
115
115
116
@pytest .mark .parametrize ("name" ,
@@ -119,23 +120,23 @@ def test_class_with_overridden_unsigned_field(generate, name):
119
120
schema .Class (name = "MyClass" , properties = [
120
121
schema .SingleProperty (name , "bar" )]),
121
122
]) == [
122
- cpp .Class (name = "MyClass" ,
123
- fields = [cpp .Field (name , "unsigned" )],
124
- trap_name = "MyClasses" ,
125
- final = True )
126
- ]
123
+ cpp .Class (name = "MyClass" ,
124
+ fields = [cpp .Field (name , "unsigned" )],
125
+ trap_name = "MyClasses" ,
126
+ final = True )
127
+ ]
127
128
128
129
129
130
def test_class_with_overridden_underscore_field (generate ):
130
131
assert generate ([
131
132
schema .Class (name = "MyClass" , properties = [
132
133
schema .SingleProperty ("something_" , "bar" )]),
133
134
]) == [
134
- cpp .Class (name = "MyClass" ,
135
- fields = [cpp .Field ("something" , "bar" )],
136
- trap_name = "MyClasses" ,
137
- final = True )
138
- ]
135
+ cpp .Class (name = "MyClass" ,
136
+ fields = [cpp .Field ("something" , "bar" )],
137
+ trap_name = "MyClasses" ,
138
+ final = True )
139
+ ]
139
140
140
141
141
142
@pytest .mark .parametrize ("name" , cpp .cpp_keywords )
@@ -144,11 +145,11 @@ def test_class_with_keyword_field(generate, name):
144
145
schema .Class (name = "MyClass" , properties = [
145
146
schema .SingleProperty (name , "bar" )]),
146
147
]) == [
147
- cpp .Class (name = "MyClass" ,
148
- fields = [cpp .Field (name + "_" , "bar" )],
149
- trap_name = "MyClasses" ,
150
- final = True )
151
- ]
148
+ cpp .Class (name = "MyClass" ,
149
+ fields = [cpp .Field (name + "_" , "bar" )],
150
+ trap_name = "MyClasses" ,
151
+ final = True )
152
+ ]
152
153
153
154
154
155
def test_classes_with_dirs (generate_grouped ):
@@ -160,11 +161,11 @@ def test_classes_with_dirs(generate_grouped):
160
161
schema .Class (name = "C" , bases = ["CBase" ], group = "bar" ),
161
162
schema .Class (name = "D" , group = "foo/bar/baz" ),
162
163
]) == {
163
- "." : [cpp .Class (name = "A" , trap_name = "As" , final = True )],
164
- "foo" : [cpp .Class (name = "B" , trap_name = "Bs" , final = True )],
165
- "bar" : [cbase , cpp .Class (name = "C" , bases = [cbase ], trap_name = "Cs" , final = True )],
166
- "foo/bar/baz" : [cpp .Class (name = "D" , trap_name = "Ds" , final = True )],
167
- }
164
+ "." : [cpp .Class (name = "A" , trap_name = "As" , final = True )],
165
+ "foo" : [cpp .Class (name = "B" , trap_name = "Bs" , final = True )],
166
+ "bar" : [cbase , cpp .Class (name = "C" , bases = [cbase ], trap_name = "Cs" , final = True )],
167
+ "foo/bar/baz" : [cpp .Class (name = "D" , trap_name = "Ds" , final = True )],
168
+ }
168
169
169
170
170
171
def test_cpp_skip_pragma (generate ):
@@ -174,10 +175,10 @@ def test_cpp_skip_pragma(generate):
174
175
schema .SingleProperty ("y" , "bar" , pragmas = ["x" , "cpp_skip" , "y" ]),
175
176
])
176
177
]) == [
177
- cpp .Class (name = "A" , final = True , trap_name = "As" , fields = [
178
- cpp .Field ("x" , "foo" ),
179
- ]),
180
- ]
178
+ cpp .Class (name = "A" , final = True , trap_name = "As" , fields = [
179
+ cpp .Field ("x" , "foo" ),
180
+ ]),
181
+ ]
181
182
182
183
183
184
def test_ipa_classes_ignored (generate ):
@@ -198,8 +199,8 @@ def test_ipa_classes_ignored(generate):
198
199
name = "Z" ,
199
200
),
200
201
]) == [
201
- cpp .Class (name = "Z" , final = True , trap_name = "Zs" ),
202
- ]
202
+ cpp .Class (name = "Z" , final = True , trap_name = "Zs" ),
203
+ ]
203
204
204
205
205
206
if __name__ == '__main__' :
0 commit comments