tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_metamerge.py (3891B)


      1 from io import BytesIO
      2 
      3 import metamerge
      4 import mozunit
      5 
      6 ancestor = """
      7 global-new-deleted: A
      8 global-new-changed: A
      9 global-current-deleted: A
     10 global-current-changed: A
     11 
     12 [failing-test.html]
     13  [Unchanged subtest]
     14    expected: FAIL
     15 
     16  [New deleted subtest]
     17    expected: FAIL
     18 
     19  [New modified subtest]
     20    expected: TIMEOUT
     21 
     22  [Current deleted subtest]
     23    expected: FAIL
     24 
     25  [New modified current deleted]
     26    expected: FAIL
     27 
     28  [Ancestor no expected new expected]
     29    bug: 1234
     30 
     31 [new-deleted-test.html]
     32  [Deleted subtest]
     33    expected: FAIL
     34 
     35 [current-deleted-test.html]
     36  [Deleted subtest]
     37    expected: FAIL
     38 
     39 [test-modified.html]
     40  expected: TIMEOUT
     41 
     42 [new-modified-current-deleted.html]
     43  expected:
     44    if os == "linux": FAIL
     45    TIMEOUT
     46 
     47 [new-add-expected-with-subtest.html]
     48  [subtest]
     49    expected: FAIL
     50 
     51 [current-add-expected-with-subtest.html]
     52  [subtest]
     53    expected: FAIL
     54 """
     55 
     56 new = """
     57 global-new-added: A
     58 global-new-changed: B
     59 global-current-deleted: A
     60 global-current-changed: A
     61 
     62 [failing-test.html]
     63  [Unchanged subtest]
     64    expected: FAIL
     65 
     66  [New added subtest]
     67    expected: FAIL
     68 
     69  [New modified subtest]
     70    expected:
     71      if os == "linux": FAIL
     72      TIMEOUT
     73 
     74  [Current deleted subtest]
     75    expected: FAIL
     76 
     77  [New modified current deleted]
     78    expected: TIMEOUT
     79 
     80  [Ancestor no expected new expected]
     81    bug: 1234
     82    expected: FAIL
     83 
     84 [new-added-test.html]
     85  [Added subtest]
     86    expected: FAIL
     87 
     88 [current-deleted-test.html]
     89  [Deleted subtest]
     90    expected: FAIL
     91 
     92 [test-modified.html]
     93  expected:
     94    if os == "linux": FAIL
     95 
     96 [new-modified-current-deleted.html]
     97  expected:
     98    if os == "linux": FAIL
     99    if os == "mac": FAIL
    100    TIMEOUT
    101 
    102 [new-add-expected-with-subtest.html]
    103  expected: FAIL
    104  [subtest]
    105    expected: FAIL
    106 
    107 [current-add-expected-with-subtest.html]
    108  [subtest]
    109    expected: FAIL
    110 """
    111 
    112 current = """
    113 global-new-deleted: A
    114 global-new-changed: A
    115 global-current-added: A
    116 global-current-changed: B
    117 
    118 [failing-test.html]
    119  [Unchanged subtest]
    120    expected: FAIL
    121 
    122  [New deleted subtest]
    123    expected: FAIL
    124 
    125  [New modified subtest]
    126    expected: TIMEOUT
    127 
    128  [Current added subtest]
    129    expected: FAIL
    130 
    131  [Ancestor no expected new expected]
    132    bug: 1234
    133 
    134 [new-deleted-test.html]
    135  [Deleted subtest]
    136    expected: FAIL
    137 
    138 [current-added-test.html]
    139  [Added subtest]
    140    expected: FAIL
    141 
    142 [new-add-expected-with-subtest.html]
    143  [subtest]
    144    expected: FAIL
    145 
    146 [current-add-expected-with-subtest.html]
    147  expected: FAIL
    148  [subtest]
    149    expected: FAIL
    150 """
    151 
    152 updated = """global-new-deleted: A
    153 global-new-changed: A
    154 global-current-added: A
    155 global-current-changed: B
    156 [failing-test.html]
    157  [Unchanged subtest]
    158    expected: FAIL
    159 
    160  [New modified subtest]
    161    expected:
    162      if os == "linux": FAIL
    163      TIMEOUT
    164 
    165  [Current added subtest]
    166    expected: FAIL
    167 
    168  [Ancestor no expected new expected]
    169    expected: FAIL
    170    bug: 1234
    171 
    172  [New added subtest]
    173    expected: FAIL
    174 
    175  [New modified current deleted]
    176    expected: TIMEOUT
    177 
    178 
    179 [current-added-test.html]
    180  [Added subtest]
    181    expected: FAIL
    182 
    183 
    184 [new-add-expected-with-subtest.html]
    185  expected: FAIL
    186  [subtest]
    187    expected: FAIL
    188 
    189 
    190 [current-add-expected-with-subtest.html]
    191  expected: FAIL
    192  [subtest]
    193    expected: FAIL
    194 
    195 
    196 [new-added-test.html]
    197  [Added subtest]
    198    expected: FAIL
    199 
    200 
    201 [test-modified.html]
    202  expected:
    203    if os == "linux": FAIL
    204 
    205 [new-modified-current-deleted.html]
    206  expected:
    207    if os == "linux": FAIL
    208    if os == "mac": FAIL
    209    TIMEOUT
    210 """
    211 
    212 
    213 def test_merge():
    214    def get_manifest(str_data):
    215        bytes_io = BytesIO(str_data.encode("utf-8"))
    216        return metamerge.compile(bytes_io, metamerge.data_cls_getter)
    217 
    218    ancestor_manifest = get_manifest(ancestor)
    219    current_manifest = get_manifest(current)
    220    new_manifest = get_manifest(new)
    221 
    222    result = metamerge.make_changes(ancestor_manifest, current_manifest, new_manifest)
    223    assert result == updated
    224 
    225 
    226 if __name__ == "__main__":
    227    mozunit.main()