Diff
Modified: trunk/Tools/ChangeLog (255882 => 255883)
--- trunk/Tools/ChangeLog 2020-02-06 01:08:45 UTC (rev 255882)
+++ trunk/Tools/ChangeLog 2020-02-06 01:13:47 UTC (rev 255883)
@@ -1,3 +1,20 @@
+2020-02-05 Jonathan Bedard <[email protected]>
+
+ resulsdbpy: Fix unit tests
+ https://bugs.webkit.org/show_bug.cgi?id=207304
+
+ Reviewed by Aakash Jain.
+
+ * resultsdbpy/resultsdbpy/model/configuration_context_unittest.py:
+ (ConfigurationContextTest.test_partition_by_configuration): Add branch to testing table.
+ (ConfigurationContextTest.test_partition_by_partial_configuration): Ditto.
+ * resultsdbpy/resultsdbpy/model/failure_context_unittest.py:
+ (FailureContextTest.test_failures): Sort test failures by uuid for a predictable order in testing.
+ (FailureContextTest.test_unexpected_failures): Ditto.
+ * resultsdbpy/resultsdbpy/model/mock_model_factory.py:
+ (MockModelFactory.iterate_all_commits): Do not batch requests since this function has no way
+ of knowing how expensive the callback may be.
+
2020-02-05 Chris Dumez <[email protected]>
Unreviewed, another build fix after r255846
Modified: trunk/Tools/resultsdbpy/resultsdbpy/model/configuration_context_unittest.py (255882 => 255883)
--- trunk/Tools/resultsdbpy/resultsdbpy/model/configuration_context_unittest.py 2020-02-06 01:08:45 UTC (rev 255882)
+++ trunk/Tools/resultsdbpy/resultsdbpy/model/configuration_context_unittest.py 2020-02-06 01:13:47 UTC (rev 255883)
@@ -205,6 +205,7 @@
class ExampleModel(ClusteredByConfiguration):
__table_name__ = 'example_table'
+ branch = columns.Text(partition_key=True, required=True)
index = columns.Integer(primary_key=True, required=True)
sdk = columns.Text(primary_key=True, required=True)
json = columns.Text()
@@ -213,7 +214,7 @@
self.database.cassandra.create_table(ExampleModel)
for configuration in self.CONFIGURATIONS:
for i in range(5):
- self.database.insert_row_with_configuration(ExampleModel.__table_name__, configuration, index=i, sdk=configuration.sdk, json=configuration.to_json())
+ self.database.insert_row_with_configuration(ExampleModel.__table_name__, configuration, branch=CommitContext.DEFAULT_BRANCH_KEY, index=i, sdk=configuration.sdk, json=configuration.to_json())
for configuration in self.CONFIGURATIONS:
result = self.database.select_from_table_with_configurations(ExampleModel.__table_name__, [configuration], index=2).get(configuration, [])
@@ -227,6 +228,7 @@
class ExampleModel(ClusteredByConfiguration):
__table_name__ = 'example_table'
+ branch = columns.Text(partition_key=True, required=True)
index = columns.Integer(primary_key=True, required=True)
json = columns.Text()
@@ -234,7 +236,7 @@
self.database.cassandra.create_table(ExampleModel)
for configuration in self.CONFIGURATIONS:
for i in range(5):
- self.database.insert_row_with_configuration(ExampleModel.__table_name__, configuration, index=i, json=configuration.to_json())
+ self.database.insert_row_with_configuration(ExampleModel.__table_name__, configuration, branch=CommitContext.DEFAULT_BRANCH_KEY, index=i, json=configuration.to_json())
configuration_to_search_for = Configuration(model='iPhone Xs')
results = self.database.select_from_table_with_configurations(ExampleModel.__table_name__, [configuration_to_search_for], index=4)
Modified: trunk/Tools/resultsdbpy/resultsdbpy/model/failure_context_unittest.py (255882 => 255883)
--- trunk/Tools/resultsdbpy/resultsdbpy/model/failure_context_unittest.py 2020-02-06 01:08:45 UTC (rev 255882)
+++ trunk/Tools/resultsdbpy/resultsdbpy/model/failure_context_unittest.py 2020-02-06 01:13:47 UTC (rev 255883)
@@ -87,7 +87,7 @@
self.assertEqual(len(results), 1)
self.assertEqual(len(list(results.values())[0]), 5)
- self.assertEqual(list(results.values())[0][0], {
+ self.assertEqual(sorted(list(results.values())[0], key=lambda value: value['uuid'])[0], {
'fast/encoding/css-cached-bom.html': 'FAIL',
'fast/encoding/css-charset-default.xhtml': 'FAIL',
'start_time': list(results.values())[0][0]['start_time'],
@@ -104,7 +104,7 @@
self.assertEqual(len(results), 1)
self.assertEqual(len(list(results.values())[0]), 5)
- self.assertEqual(list(results.values())[0][0], {
+ self.assertEqual(sorted(list(results.values())[0], key=lambda value: value['uuid'])[0], {
'fast/encoding/css-cached-bom.html': 'FAIL',
'start_time': list(results.values())[0][0]['start_time'],
'uuid': 153802947900
Modified: trunk/Tools/resultsdbpy/resultsdbpy/model/mock_model_factory.py (255882 => 255883)
--- trunk/Tools/resultsdbpy/resultsdbpy/model/mock_model_factory.py 2020-02-06 01:08:45 UTC (rev 255882)
+++ trunk/Tools/resultsdbpy/resultsdbpy/model/mock_model_factory.py 2020-02-06 01:13:47 UTC (rev 255883)
@@ -110,31 +110,31 @@
for branch in branches:
commit_index = {repo: 0 for repo in repos}
commits_for_repo = {repo: sorted(model.commit_context.find_commits_in_range(repo, branch)) for repo in repos}
- with model.upload_context.cassandra.batch_query_context():
+
+ for repo in repos:
+ while max([commits_for_repo[r][commit_index[r]] for r in repos]) > commits_for_repo[repo][commit_index[repo]]:
+ if commit_index[repo] + 1 >= len(commits_for_repo[repo]):
+ break
+ commit_index[repo] += 1
+
+ while True:
+ commits = []
for repo in repos:
- while max([commits_for_repo[r][commit_index[r]] for r in repos]) > commits_for_repo[repo][commit_index[repo]]:
- if commit_index[repo] + 1 >= len(commits_for_repo[repo]):
- break
- commit_index[repo] += 1
+ commits.append(commits_for_repo[repo][commit_index[repo]])
+ callback(commits)
- while True:
- commits = []
- for repo in repos:
- commits.append(commits_for_repo[repo][commit_index[repo]])
- callback(commits)
-
- youngest_next_repo = None
- for repo in repos:
- if commit_index[repo] + 1 >= len(commits_for_repo[repo]):
- continue
- if not youngest_next_repo:
- youngest_next_repo = repo
- continue
- if commits_for_repo[youngest_next_repo][commit_index[youngest_next_repo] + 1] > commits_for_repo[repo][commit_index[repo] + 1]:
- youngest_next_repo = repo
+ youngest_next_repo = None
+ for repo in repos:
+ if commit_index[repo] + 1 >= len(commits_for_repo[repo]):
+ continue
if not youngest_next_repo:
- break
- commit_index[youngest_next_repo] += 1
+ youngest_next_repo = repo
+ continue
+ if commits_for_repo[youngest_next_repo][commit_index[youngest_next_repo] + 1] > commits_for_repo[repo][commit_index[repo] + 1]:
+ youngest_next_repo = repo
+ if not youngest_next_repo:
+ break
+ commit_index[youngest_next_repo] += 1
@classmethod
def add_mock_results(cls, model, configuration=Configuration(), suite='layout-tests', test_results=None):