@@ -303,3 +303,39 @@ def test_should_do_markup_PY_COLORS_eq_0(monkeypatch):
303
303
tw .line ("hello" , bold = True )
304
304
s = f .getvalue ()
305
305
assert s == "hello\n "
306
+
307
+ def test_should_do_markup (monkeypatch ):
308
+ monkeypatch .delenv ("PY_COLORS" , raising = False )
309
+ monkeypatch .delenv ("NO_COLOR" , raising = False )
310
+
311
+ should_do_markup = terminalwriter .should_do_markup
312
+
313
+ f = py .io .TextIO ()
314
+ f .isatty = lambda : True
315
+
316
+ assert should_do_markup (f ) is True
317
+
318
+ # NO_COLOR without PY_COLORS.
319
+ monkeypatch .setenv ("NO_COLOR" , "0" )
320
+ assert should_do_markup (f ) is False
321
+ monkeypatch .setenv ("NO_COLOR" , "1" )
322
+ assert should_do_markup (f ) is False
323
+ monkeypatch .setenv ("NO_COLOR" , "any" )
324
+ assert should_do_markup (f ) is False
325
+
326
+ # PY_COLORS overrides NO_COLOR ("0" and "1" only).
327
+ monkeypatch .setenv ("PY_COLORS" , "1" )
328
+ assert should_do_markup (f ) is True
329
+ monkeypatch .setenv ("PY_COLORS" , "0" )
330
+ assert should_do_markup (f ) is False
331
+ # Uses NO_COLOR.
332
+ monkeypatch .setenv ("PY_COLORS" , "any" )
333
+ assert should_do_markup (f ) is False
334
+ monkeypatch .delenv ("NO_COLOR" )
335
+ assert should_do_markup (f ) is True
336
+
337
+ # Back to defaults.
338
+ monkeypatch .delenv ("PY_COLORS" )
339
+ assert should_do_markup (f ) is True
340
+ f .isatty = lambda : False
341
+ assert should_do_markup (f ) is False
0 commit comments