tests/test-minifileset.py
author Pulkit Goyal <7895pulkit@gmail.com>
Wed, 06 Jan 2021 18:31:16 +0530
changeset 46236 eec47efe219d
parent 43076 2372284d9457
child 48966 6000f5b25c9b
permissions -rw-r--r--
sharesafe: add functionality to automatically downgrade shares Reasoning is same as previous patch which adds automatic upgrade support. Downgrade is required as if automatic upgrade is enabled, all shares upgrade and then source repository downgrades, shares won't work. We need to downgrade them. Differential Revision: https://phab.mercurial-scm.org/D9680
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
35616
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     1
from __future__ import absolute_import
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     2
from __future__ import print_function
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     3
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     4
from mercurial import minifileset
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     5
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
     6
35616
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     7
def check(text, truecases, falsecases):
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     8
    f = minifileset.compile(text)
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     9
    for args in truecases:
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    10
        if not f(*args):
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    11
            print('unexpected: %r should include %r' % (text, args))
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    12
    for args in falsecases:
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    13
        if f(*args):
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    14
            print('unexpected: %r should exclude %r' % (text, args))
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    15
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    16
37921
2cdae2582d8a tests: port test-minifileset.py to Python 3
Augie Fackler <augie@google.com>
parents: 35741
diff changeset
    17
check(b'all()', [(b'a.php', 123), (b'b.txt', 0)], [])
2cdae2582d8a tests: port test-minifileset.py to Python 3
Augie Fackler <augie@google.com>
parents: 35741
diff changeset
    18
check(b'none()', [], [(b'a.php', 123), (b'b.txt', 0)])
2cdae2582d8a tests: port test-minifileset.py to Python 3
Augie Fackler <augie@google.com>
parents: 35741
diff changeset
    19
check(b'!!!!((!(!!all())))', [], [(b'a.php', 123), (b'b.txt', 0)])
35616
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    20
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    21
check(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    22
    b'"path:a" & (**.b | **.c)', [(b'a/b.b', 0), (b'a/c.c', 0)], [(b'b/c.c', 0)]
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    23
)
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    24
check(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    25
    b'(path:a & **.b) | **.c', [(b'a/b.b', 0), (b'a/c.c', 0), (b'b/c.c', 0)], []
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    26
)
35616
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    27
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    28
check(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    29
    b'**.bin - size("<20B")', [(b'b.bin', 21)], [(b'a.bin', 11), (b'b.txt', 21)]
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    30
)
35616
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    31
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    32
check(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    33
    b'!!**.bin or size(">20B") + "path:bin" or !size(">10")',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    34
    [(b'a.bin', 11), (b'b.txt', 21), (b'bin/abc', 11)],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    35
    [(b'a.notbin', 11), (b'b.txt', 11), (b'bin2/abc', 11)],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    36
)
35616
706aa203b396 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    37
37921
2cdae2582d8a tests: port test-minifileset.py to Python 3
Augie Fackler <augie@google.com>
parents: 35741
diff changeset
    38
check(
2cdae2582d8a tests: port test-minifileset.py to Python 3
Augie Fackler <augie@google.com>
parents: 35741
diff changeset
    39
    b'(**.php and size(">10KB")) | **.zip | ("path:bin" & !"path:bin/README") '
2cdae2582d8a tests: port test-minifileset.py to Python 3
Augie Fackler <augie@google.com>
parents: 35741
diff changeset
    40
    b' | size(">1M")',
2cdae2582d8a tests: port test-minifileset.py to Python 3
Augie Fackler <augie@google.com>
parents: 35741
diff changeset
    41
    [(b'a.php', 15000), (b'a.zip', 0), (b'bin/a', 0), (b'bin/README', 1e7)],
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    42
    [(b'a.php', 5000), (b'b.zip2', 0), (b't/bin/a', 0), (b'bin/README', 1)],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40099
diff changeset
    43
)