Rename env variable, refactor tests

Drops the ancient rc-file convention in favor of YAMLLINT_CONFIG_FILE to
be more consistent with the rest of the documentation.

Uses the `tempfile` module's `NamedTemporaryFile` context manager to
handle the creation and cleanup of temp files (`NamedTemporaryFile` has
a `delete` option, true by default, which removes the file once it's
closed).
pull/255/head
Will Badart 5 years ago
parent 257cd5f991
commit 8657838696
No known key found for this signature in database
GPG Key ID: C0BFCABCFFB2398B

@ -24,6 +24,7 @@ import os
import pty import pty
import shutil import shutil
import sys import sys
import tempfile
import unittest import unittest
from tests.common import build_temp_workspace from tests.common import build_temp_workspace
@ -286,24 +287,23 @@ class CommandLineTestCase(unittest.TestCase):
self.assertEqual(ctx.returncode, 1) self.assertEqual(ctx.returncode, 1)
def test_run_with_user_yamllintrc_config_file(self): def test_run_with_user_yamllintrc_config_file(self):
config = os.path.join(self.wd, 'fake-local-config') self.addCleanup(os.environ.__delitem__, 'YAMLLINT_CONFIG_FILE')
self.addCleanup(os.remove, config)
self.addCleanup(os.environ.__delitem__, 'YAMLLINTRC')
os.environ['YAMLLINTRC'] = config
with open(config, 'w') as f: with tempfile.NamedTemporaryFile('w') as f:
os.environ['YAMLLINT_CONFIG_FILE'] = f.name
f.write('rules: {trailing-spaces: disable}') f.write('rules: {trailing-spaces: disable}')
f.flush()
with RunContext(self) as ctx:
cli.run((os.path.join(self.wd, 'a.yaml'), ))
self.assertEqual(ctx.returncode, 0)
with RunContext(self) as ctx: with tempfile.NamedTemporaryFile('w') as f:
cli.run((os.path.join(self.wd, 'a.yaml'), )) os.environ['YAMLLINT_CONFIG_FILE'] = f.name
self.assertEqual(ctx.returncode, 0)
with open(config, 'w') as f:
f.write('rules: {trailing-spaces: enable}') f.write('rules: {trailing-spaces: enable}')
f.flush()
with RunContext(self) as ctx: with RunContext(self) as ctx:
cli.run((os.path.join(self.wd, 'a.yaml'), )) cli.run((os.path.join(self.wd, 'a.yaml'), ))
self.assertEqual(ctx.returncode, 1) self.assertEqual(ctx.returncode, 1)
def test_run_version(self): def test_run_version(self):
with RunContext(self) as ctx: with RunContext(self) as ctx:

@ -144,8 +144,9 @@ def run(argv=None):
args = parser.parse_args(argv) args = parser.parse_args(argv)
if 'YAMLLINTRC' in os.environ: if 'YAMLLINT_CONFIG_FILE' in os.environ:
user_global_config = os.path.expanduser(os.environ['YAMLLINTRC']) user_global_config = os.path.expanduser(
os.environ['YAMLLINT_CONFIG_FILE'])
# User-global config is supposed to be in ~/.config/yamllint/config # User-global config is supposed to be in ~/.config/yamllint/config
elif 'XDG_CONFIG_HOME' in os.environ: elif 'XDG_CONFIG_HOME' in os.environ:
user_global_config = os.path.join( user_global_config = os.path.join(

Loading…
Cancel
Save