(self)
| 251 | |
| 252 | @force_colorized |
| 253 | def test_colors(self): |
| 254 | infile = os_helper.TESTFN |
| 255 | self.addCleanup(os.remove, infile) |
| 256 | |
| 257 | t = get_theme().syntax |
| 258 | ob = "{" |
| 259 | cb = "}" |
| 260 | |
| 261 | cases = ( |
| 262 | ('{}', '{}'), |
| 263 | ('[]', '[]'), |
| 264 | ('null', f'{t.keyword}null{t.reset}'), |
| 265 | ('true', f'{t.keyword}true{t.reset}'), |
| 266 | ('false', f'{t.keyword}false{t.reset}'), |
| 267 | ('NaN', f'{t.number}NaN{t.reset}'), |
| 268 | ('Infinity', f'{t.number}Infinity{t.reset}'), |
| 269 | ('-Infinity', f'{t.number}-Infinity{t.reset}'), |
| 270 | ('"foo"', f'{t.string}"foo"{t.reset}'), |
| 271 | (r'" \"foo\" "', f'{t.string}" \\"foo\\" "{t.reset}'), |
| 272 | ('"α"', f'{t.string}"\\u03b1"{t.reset}'), |
| 273 | ('123', f'{t.number}123{t.reset}'), |
| 274 | ('-1.25e+23', f'{t.number}-1.25e+23{t.reset}'), |
| 275 | (r'{"\\": ""}', |
| 276 | f'''\ |
| 277 | {ob} |
| 278 | {t.definition}"\\\\"{t.reset}: {t.string}""{t.reset} |
| 279 | {cb}'''), |
| 280 | (r'{"\\\\": ""}', |
| 281 | f'''\ |
| 282 | {ob} |
| 283 | {t.definition}"\\\\\\\\"{t.reset}: {t.string}""{t.reset} |
| 284 | {cb}'''), |
| 285 | ('''\ |
| 286 | { |
| 287 | "foo": "bar", |
| 288 | "baz": 1234, |
| 289 | "qux": [true, false, null], |
| 290 | "xyz": [NaN, -Infinity, Infinity] |
| 291 | }''', |
| 292 | f'''\ |
| 293 | {ob} |
| 294 | {t.definition}"foo"{t.reset}: {t.string}"bar"{t.reset}, |
| 295 | {t.definition}"baz"{t.reset}: {t.number}1234{t.reset}, |
| 296 | {t.definition}"qux"{t.reset}: [ |
| 297 | {t.keyword}true{t.reset}, |
| 298 | {t.keyword}false{t.reset}, |
| 299 | {t.keyword}null{t.reset} |
| 300 | ], |
| 301 | {t.definition}"xyz"{t.reset}: [ |
| 302 | {t.number}NaN{t.reset}, |
| 303 | {t.number}-Infinity{t.reset}, |
| 304 | {t.number}Infinity{t.reset} |
| 305 | ] |
| 306 | {cb}'''), |
| 307 | ) |
| 308 | |
| 309 | for input_, expected in cases: |
| 310 | with self.subTest(input=input_): |
nothing calls this directly
no test coverage detected