aboutsummaryrefslogtreecommitdiffstats
path: root/library/python/testing/yatest_lib
diff options
context:
space:
mode:
authorasatarin <asatarin@yandex-team.ru>2022-02-10 16:47:30 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:47:30 +0300
commitca04a556317a80ac802f38457a2292185282878b (patch)
treec0748b5dcbade83af788c0abfa89c0383d6b779c /library/python/testing/yatest_lib
parent4ca29390ac54b7877174de542de47532c67453b5 (diff)
downloadydb-ca04a556317a80ac802f38457a2292185282878b.tar.gz
Restoring authorship annotation for <asatarin@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/python/testing/yatest_lib')
-rw-r--r--library/python/testing/yatest_lib/test_splitter.py92
1 files changed, 46 insertions, 46 deletions
diff --git a/library/python/testing/yatest_lib/test_splitter.py b/library/python/testing/yatest_lib/test_splitter.py
index ba90a47291..acbcd4300e 100644
--- a/library/python/testing/yatest_lib/test_splitter.py
+++ b/library/python/testing/yatest_lib/test_splitter.py
@@ -1,50 +1,50 @@
# coding: utf-8
-
-import collections
-
-
+
+import collections
+
+
def flatten_tests(test_classes):
- """
- >>> test_classes = {x: [x] for x in range(5)}
+ """
+ >>> test_classes = {x: [x] for x in range(5)}
>>> flatten_tests(test_classes)
- [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
- >>> test_classes = {x: [x + 1, x + 2] for x in range(2)}
+ [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
+ >>> test_classes = {x: [x + 1, x + 2] for x in range(2)}
>>> flatten_tests(test_classes)
- [(0, 1), (0, 2), (1, 2), (1, 3)]
- """
- tests = []
- for class_name, test_names in test_classes.items():
- tests += [(class_name, test_name) for test_name in test_names]
- return tests
-
-
+ [(0, 1), (0, 2), (1, 2), (1, 3)]
+ """
+ tests = []
+ for class_name, test_names in test_classes.items():
+ tests += [(class_name, test_name) for test_name in test_names]
+ return tests
+
+
def get_sequential_chunk(tests, modulo, modulo_index, is_sorted=False):
- """
+ """
>>> get_sequential_chunk(range(10), 4, 0)
- [0, 1, 2]
+ [0, 1, 2]
>>> get_sequential_chunk(range(10), 4, 1)
- [3, 4, 5]
+ [3, 4, 5]
>>> get_sequential_chunk(range(10), 4, 2)
[6, 7]
>>> get_sequential_chunk(range(10), 4, 3)
[8, 9]
>>> get_sequential_chunk(range(10), 4, 4)
- []
+ []
>>> get_sequential_chunk(range(10), 4, 5)
- []
- """
+ []
+ """
if not is_sorted:
tests = sorted(tests)
chunk_size = len(tests) // modulo
not_used = len(tests) % modulo
shift = chunk_size + (modulo_index < not_used)
start = chunk_size * modulo_index + min(modulo_index, not_used)
- end = start + shift
+ end = start + shift
return [] if end > len(tests) else tests[start:end]
-
-
+
+
def get_shuffled_chunk(tests, modulo, modulo_index, is_sorted=False):
- """
+ """
>>> get_shuffled_chunk(range(10), 4, 0)
[0, 4, 8]
>>> get_shuffled_chunk(range(10), 4, 1)
@@ -78,25 +78,25 @@ def get_splitted_tests(test_entities, modulo, modulo_index, partition_mode, is_s
def filter_tests_by_modulo(test_classes, modulo, modulo_index, split_by_tests, partition_mode="SEQUENTIAL"):
"""
- >>> test_classes = {x: [x] for x in range(20)}
- >>> filter_tests_by_modulo(test_classes, 4, 0, False)
- {0: [0], 1: [1], 2: [2], 3: [3], 4: [4]}
- >>> filter_tests_by_modulo(test_classes, 4, 1, False)
- {8: [8], 9: [9], 5: [5], 6: [6], 7: [7]}
- >>> filter_tests_by_modulo(test_classes, 4, 2, False)
- {10: [10], 11: [11], 12: [12], 13: [13], 14: [14]}
-
- >>> dict(filter_tests_by_modulo(test_classes, 4, 0, True))
- {0: [0], 1: [1], 2: [2], 3: [3], 4: [4]}
- >>> dict(filter_tests_by_modulo(test_classes, 4, 1, True))
- {8: [8], 9: [9], 5: [5], 6: [6], 7: [7]}
- """
- if split_by_tests:
+ >>> test_classes = {x: [x] for x in range(20)}
+ >>> filter_tests_by_modulo(test_classes, 4, 0, False)
+ {0: [0], 1: [1], 2: [2], 3: [3], 4: [4]}
+ >>> filter_tests_by_modulo(test_classes, 4, 1, False)
+ {8: [8], 9: [9], 5: [5], 6: [6], 7: [7]}
+ >>> filter_tests_by_modulo(test_classes, 4, 2, False)
+ {10: [10], 11: [11], 12: [12], 13: [13], 14: [14]}
+
+ >>> dict(filter_tests_by_modulo(test_classes, 4, 0, True))
+ {0: [0], 1: [1], 2: [2], 3: [3], 4: [4]}
+ >>> dict(filter_tests_by_modulo(test_classes, 4, 1, True))
+ {8: [8], 9: [9], 5: [5], 6: [6], 7: [7]}
+ """
+ if split_by_tests:
tests = get_splitted_tests(flatten_tests(test_classes), modulo, modulo_index, partition_mode)
- test_classes = collections.defaultdict(list)
- for class_name, test_name in tests:
- test_classes[class_name].append(test_name)
- return test_classes
- else:
+ test_classes = collections.defaultdict(list)
+ for class_name, test_name in tests:
+ test_classes[class_name].append(test_name)
+ return test_classes
+ else:
target_classes = get_splitted_tests(test_classes, modulo, modulo_index, partition_mode)
- return {class_name: test_classes[class_name] for class_name in target_classes}
+ return {class_name: test_classes[class_name] for class_name in target_classes}