forked from mirrors/gecko-dev
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly. To produce this patch I did all of the following: 1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions. 2. Run ./mach lint --linter black --fix 3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks. 4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat. 5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023). # ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D94045
104 lines
2.2 KiB
Python
104 lines
2.2 KiB
Python
from __future__ import absolute_import
|
|
|
|
import mozunit
|
|
import pytest
|
|
|
|
from mozrelease.versions import MozillaVersion
|
|
|
|
|
|
ALL_VERSIONS = [ # Keep this sorted
|
|
"3.0",
|
|
"3.0.1",
|
|
"3.0.2",
|
|
"3.0.3",
|
|
"3.0.4",
|
|
"3.0.5",
|
|
"3.0.6",
|
|
"3.0.7",
|
|
"3.0.8",
|
|
"3.0.9",
|
|
"3.0.10",
|
|
"3.0.11",
|
|
"3.0.12",
|
|
"3.0.13",
|
|
"3.0.14",
|
|
"3.0.15",
|
|
"3.0.16",
|
|
"3.0.17",
|
|
"3.0.18",
|
|
"3.0.19",
|
|
"3.1b1",
|
|
"3.1b2",
|
|
"3.1b3",
|
|
"3.5b4",
|
|
"3.5b99",
|
|
"3.5rc1",
|
|
"3.5rc2",
|
|
"3.5rc3",
|
|
"3.5",
|
|
"3.5.1",
|
|
"3.5.2",
|
|
"3.5.3",
|
|
"3.5.4",
|
|
"3.5.5",
|
|
"3.5.6",
|
|
"3.5.7",
|
|
"3.5.8",
|
|
"3.5.9",
|
|
"3.5.10",
|
|
# ... Start skipping around...
|
|
"4.0b9",
|
|
"10.0.2esr",
|
|
"10.0.3esr",
|
|
"32.0",
|
|
"49.0a1",
|
|
"49.0a2",
|
|
"59.0",
|
|
"60.0",
|
|
"60.0esr",
|
|
"60.0.1esr",
|
|
"60.1",
|
|
"60.1esr",
|
|
"61.0",
|
|
]
|
|
|
|
|
|
@pytest.fixture(
|
|
scope="function",
|
|
params=range(len(ALL_VERSIONS) - 1),
|
|
ids=lambda x: "{}, {}".format(ALL_VERSIONS[x], ALL_VERSIONS[x + 1]),
|
|
)
|
|
def comparable_versions(request):
|
|
index = request.param
|
|
return ALL_VERSIONS[index], ALL_VERSIONS[index + 1]
|
|
|
|
|
|
@pytest.mark.parametrize("version", ALL_VERSIONS)
|
|
def test_versions_parseable(version):
|
|
"""Test that we can parse previously shipped versions.
|
|
|
|
We only test 3.0 and up, since we never generate updates against
|
|
versions that old."""
|
|
assert MozillaVersion(version) is not None
|
|
|
|
|
|
def test_versions_compare_less(comparable_versions):
|
|
"""Test that versions properly compare in order."""
|
|
smaller_version, larger_version = comparable_versions
|
|
assert MozillaVersion(smaller_version) < MozillaVersion(larger_version)
|
|
|
|
|
|
def test_versions_compare_greater(comparable_versions):
|
|
"""Test that versions properly compare in order."""
|
|
smaller_version, larger_version = comparable_versions
|
|
assert MozillaVersion(larger_version) > MozillaVersion(smaller_version)
|
|
|
|
|
|
@pytest.mark.parametrize("version", ALL_VERSIONS)
|
|
def test_versions_compare_equal(version):
|
|
"""Test that versions properly compare as equal through multiple passes."""
|
|
assert MozillaVersion(version) == MozillaVersion(version)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
mozunit.main()
|