Skip to content

Commit 37e5cf5

Browse files
committed
Fixed test to combine payloads
1 parent 30def06 commit 37e5cf5

File tree

2 files changed

+30
-13
lines changed

2 files changed

+30
-13
lines changed

sqlserver/tests/test_metadata.py

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
import pytest
1111

12-
from deepdiff import DeepDiff
12+
#from deepdiff import DeepDiff
1313

1414
from datadog_checks.sqlserver import SQLServer
1515
#from deepdiff import DeepDiff - not clear how to add it to ddev
@@ -117,9 +117,11 @@ def test_collect_schemas(aggregator, dd_run_check, dbm_instance):
117117
dd_run_check(check)
118118

119119
#extracting events.
120-
pdb.set_trace()
120+
121121
dbm_metadata = aggregator.get_event_platform_events("dbm-metadata")
122122

123+
actual_payloads = {}
124+
123125
#TODO later modify kind
124126
for schema_event in (e for e in dbm_metadata if e['kind'] == 'pg_databases'):
125127
if len(databases_to_find) == 0:
@@ -132,18 +134,31 @@ def test_collect_schemas(aggregator, dd_run_check, dbm_instance):
132134
database_metadata = schema_event['metadata']
133135
assert len(database_metadata) == 1
134136
db_name = database_metadata[0]['name']
135-
assert delete_if_found(databases_to_find, db_name)
137+
138+
if db_name in actual_payloads:
139+
actual_payloads[db_name]['schemas'] = actual_payloads[db_name]['schemas'] + database_metadata[0]['schemas']
140+
else:
141+
actual_payloads[db_name] = database_metadata[0]
142+
143+
assert len(actual_payloads) == len(expected_data_for_db)
144+
145+
for db_name, actual_payload in actual_payloads.items():
146+
147+
#assert delete_if_found(databases_to_find, db_name)
148+
assert db_name in databases_to_find
149+
# we need to accumulate all data ... as payloads may differ
136150

137151
# TODO enable when we add the package
138-
difference = DeepDiff(database_metadata[0], expected_data_for_db[db_name], ignore_order=True)
139-
pdb.set_trace()
140-
#difference = {}
152+
#difference = DeepDiff(actual_payload, expected_data_for_db[db_name], ignore_order=True)
153+
154+
difference = {}
141155
diff_keys = list(difference.keys())
142156
if len(diff_keys) > 0 and list(diff_keys.keys()) is not ['iterable_item_removed']:
143157
logging.debug("found the following diffs %s", json.dumps(difference))
144158
assert False
145159

146160
# we need a special comparison as order of columns matter
147-
assert compare_coumns_in_tables(expected_data_for_db[db_name], database_metadata[0])
148-
149-
assert len(databases_to_find) == 0
161+
pdb.set_trace()
162+
assert compare_coumns_in_tables(expected_data_for_db[db_name], actual_payload)
163+
pdb.set_trace()
164+
print("ok")

sqlserver/tests/utils.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -227,13 +227,15 @@ def delete_if_found(my_list, value):
227227
except ValueError:
228228
return None
229229

230+
import pdb
230231
def compare_coumns_in_tables(expected_data_for_db, actual_data_for_db):
232+
pdb.set_trace()
231233
for schema in expected_data_for_db['schemas']:
232234
actual_schema = next(filter(lambda x: x['id'] == schema['id'], actual_data_for_db['schemas']))
233235
for table in schema['tables']:
234236
#find a table and then finally compare columns
235237
actual_table = next(filter(lambda x: x['id'] == table['id'], actual_schema['tables']))
236-
if actual_table['columns'] == table['columns']:
237-
return True
238-
else:
239-
return False
238+
if actual_table['columns'] != table['columns']:
239+
return False
240+
241+
return True

0 commit comments

Comments
 (0)