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()