def test_mock_chunk_manifests_wpt(unchunked_manifests, suite, chunks): """Tests web-platform-tests and its subsuites chunking process. """ # Setup. manifests = unchunked_manifests(suite) # Generate the expected results, by generating list of indices that each # manifest should go into and then appending each item to that index. # This method is intentionally different from the way chunking.py performs # chunking for cross-checking. expected = [[] for _ in range(chunks)] indexed = zip(manifests, list(range(0, chunks)) * len(manifests)) for i in indexed: expected[i[1]].append(i[0]) # Call the method under test on unchunked manifests. chunked_manifests = chunking.chunk_manifests(suite, 'unix', chunks, manifests) # Assertions and end test. assert chunked_manifests if chunks > len(manifests): # If chunk count exceeds number of manifests, not all chunks will have # manifests. with pytest.raises(AssertionError): assert all(chunked_manifests) else: assert all(chunked_manifests) minimum = min([len(c) for c in chunked_manifests]) maximum = max([len(c) for c in chunked_manifests]) assert maximum - minimum <= 1 assert expected == chunked_manifests
def test_chunk_manifests(suite, platform, chunks, mock_mozinfo): """Tests chunking with real manifests.""" mozinfo = mock_mozinfo(*platform) loader = chunking.DefaultLoader([]) manifests = loader.get_manifests(suite, frozenset(mozinfo.items())) chunked_manifests = chunking.chunk_manifests(suite, platform, chunks, manifests["active"]) # Assertions and end test. assert chunked_manifests assert len(chunked_manifests) == chunks assert all(chunked_manifests)
def test_mock_chunk_manifests(mock_manifest_runtimes, unchunked_manifests, suite, chunks): """Tests non-WPT tests and its subsuites chunking process. """ # Setup. manifests = unchunked_manifests(suite) # Call the method under test on unchunked manifests. chunked_manifests = chunking.chunk_manifests(suite, 'unix', chunks, manifests) # Assertions and end test. assert chunked_manifests if chunks > len(manifests): # If chunk count exceeds number of manifests, not all chunks will have # manifests. with pytest.raises(AssertionError): assert all(chunked_manifests) else: assert all(chunked_manifests)