38
38
39
39
class TestCase (_TestCase ):
40
40
41
- def assertLayersEqual (self , layer1 , layer2 , ** kwargs ):
41
+ def assertLayersEqual (self , layer_expected , layer_result , ** kwargs ):
42
42
"""
43
- :param layer1 : The first layer to compare
44
- :param layer2 : The second layer to compare
43
+ :param layer_expected : The first layer to compare
44
+ :param layer_result : The second layer to compare
45
45
:param request: Optional, A feature request. This can be used to specify
46
46
an order by clause to make sure features are compared in
47
47
a given sequence if they don't match by default.
@@ -61,17 +61,17 @@ def assertLayersEqual(self, layer1, layer2, **kwargs):
61
61
compare = {}
62
62
63
63
# Compare CRS
64
- _TestCase .assertEqual (self , layer1 .dataProvider ().crs ().authid (), layer2 .dataProvider ().crs ().authid ())
64
+ _TestCase .assertEqual (self , layer_expected .dataProvider ().crs ().authid (), layer_result .dataProvider ().crs ().authid ())
65
65
66
66
# Compare features
67
- _TestCase .assertEqual (self , layer1 .featureCount (), layer2 .featureCount ())
67
+ _TestCase .assertEqual (self , layer_expected .featureCount (), layer_result .featureCount ())
68
68
69
69
try :
70
70
precision = compare ['geometry' ]['precision' ]
71
71
except KeyError :
72
72
precision = 17
73
73
74
- for feats in zip (layer1 .getFeatures (request ), layer2 .getFeatures (request )):
74
+ for feats in zip (layer_expected .getFeatures (request ), layer_result .getFeatures (request )):
75
75
if feats [0 ].geometry () is not None :
76
76
geom0 = feats [0 ].geometry ().geometry ().asWkt (precision )
77
77
else :
@@ -92,7 +92,9 @@ def assertLayersEqual(self, layer1, layer2, **kwargs):
92
92
)
93
93
)
94
94
95
- for attr0 , attr1 , field1 , field2 in zip (feats [0 ].attributes (), feats [1 ].attributes (), layer1 .fields ().toList (), layer2 .fields ().toList ()):
95
+ for attr_expected , field_expected in zip (feats [0 ].attributes (), layer_expected .fields ().toList ()):
96
+ attr_result = feats [1 ][field_expected .name ()]
97
+ field_result = [fld for fld in layer_expected .fields ().toList () if fld .name () == field_expected .name ()][0 ]
96
98
try :
97
99
cmp = compare ['fields' ][field1 .name ()]
98
100
except KeyError :
@@ -108,33 +110,33 @@ def assertLayersEqual(self, layer1, layer2, **kwargs):
108
110
# Cast field to a given type
109
111
if 'cast' in cmp :
110
112
if cmp ['cast' ] == 'int' :
111
- attr0 = int (attr0 ) if attr0 else None
112
- attr1 = int (attr1 ) if attr0 else None
113
+ attr_expected = int (attr_expected ) if attr_expected else None
114
+ attr_result = int (attr_result ) if attr_result else None
113
115
if cmp ['cast' ] == 'float' :
114
- attr0 = float (attr0 ) if attr0 else None
115
- attr1 = float (attr1 ) if attr0 else None
116
+ attr_expected = float (attr_expected ) if attr_expected else None
117
+ attr_result = float (attr_result ) if attr_result else None
116
118
if cmp ['cast' ] == 'str' :
117
- attr0 = str (attr0 )
118
- attr1 = str (attr1 )
119
+ attr_expected = str (attr_expected ) if attr_expected else None
120
+ attr_result = str (attr_result ) if attr_result else None
119
121
120
122
# Round field (only numeric so it works with __all__)
121
- if 'precision' in cmp and field1 .type () in [QVariant .Int , QVariant .Double , QVariant .LongLong ]:
122
- attr0 = round (attr0 , cmp ['precision' ])
123
- attr1 = round (attr1 , cmp ['precision' ])
123
+ if 'precision' in cmp and field_expected .type () in [QVariant .Int , QVariant .Double , QVariant .LongLong ]:
124
+ attr_expected = round (attr_expected , cmp ['precision' ])
125
+ attr_result = round (attr_result , cmp ['precision' ])
124
126
125
127
_TestCase .assertEqual (
126
128
self ,
127
- attr0 ,
128
- attr1 ,
129
+ attr_expected ,
130
+ attr_result ,
129
131
'Features {}/{} differ in attributes\n \n * Field1: {} ({})\n * Field2: {} ({})\n \n * {} != {}' .format (
130
132
feats [0 ].id (),
131
133
feats [1 ].id (),
132
- field1 .name (),
133
- field1 .typeName (),
134
- field2 .name (),
135
- field2 .typeName (),
136
- repr (attr0 ),
137
- repr (attr1 )
134
+ field_expected .name (),
135
+ field_expected .typeName (),
136
+ field_result .name (),
137
+ field_result .typeName (),
138
+ repr (attr_expected ),
139
+ repr (attr_result )
138
140
)
139
141
)
140
142
0 commit comments