123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #!/usr/bin/env python3
- import clean_json_attrs
- import json
- import os
- import shutil
- import tempfile
- import unittest
- class CleanJsonAttrs(unittest.TestCase):
- def setUp(self):
- self._start_dir = tempfile.mkdtemp(dir=os.path.dirname(__file__))
- self._kwargs = {
- 'file_pattern': 'package\.json',
- 'attr_pattern': '^_',
- 'start_dir': self._start_dir
- }
- def tearDown(self):
- assert self._start_dir
- shutil.rmtree(self._start_dir)
- def _read_temp_file(self, filename):
- with open(os.path.join(self._start_dir, filename)) as f:
- return json.loads(f.read())
- def _write_temp_file(self, filename, json_dict):
- with open(os.path.join(self._start_dir, filename), 'w') as f:
- f.write(json.dumps(json_dict))
- def testAttrPattern(self):
- self._write_temp_file('package.json', {
- 'delete_me': True,
- 'ignore_me': True,
- 'version': '2.3.4',
- })
- args = self._kwargs.copy()
- args['attr_pattern'] = '^delete'
- self.assertTrue(clean_json_attrs.Clean(**args))
- json_dict = self._read_temp_file('package.json')
- self.assertEqual(['ignore_me', 'version'], sorted(json_dict.keys()))
- def testFilePattern(self):
- self._write_temp_file('clean_me.json', {'_where': '/a/b/c'})
- self._write_temp_file('ignore_me.json', {'_args': ['/a/b/c']})
- args = self._kwargs.copy()
- args['file_pattern'] = '^clean_'
- self.assertTrue(clean_json_attrs.Clean(**args))
- self.assertListEqual(
- [], list(self._read_temp_file('clean_me.json').keys()))
- self.assertListEqual(
- ['_args'], list(self._read_temp_file('ignore_me.json').keys()))
- def testNestedKeys(self):
- self._write_temp_file('package.json', {
- '_args': ['/some/path/'],
- 'nested': {
- '_keys': [],
- 'also': {
- '_get': 'scanned',
- },
- },
- '_where': '/some/path',
- 'version': '2.0.0'
- })
- self.assertTrue(clean_json_attrs.Clean(**self._kwargs))
- json_dict = self._read_temp_file('package.json')
- self.assertListEqual(['nested', 'version'], sorted(json_dict.keys()))
- self.assertListEqual(['also'], list(json_dict['nested'].keys()))
- self.assertListEqual([], list(json_dict['nested']['also'].keys()))
- def testNothingToRemove(self):
- self._write_temp_file('package.json', {'version': '2.0.0'})
- self.assertFalse(clean_json_attrs.Clean(**self._kwargs))
- self.assertListEqual(
- ['version'], list(self._read_temp_file('package.json').keys()))
- def testSimple(self):
- self._write_temp_file('package.json', {
- '_args': ['/some/path/'],
- 'version': '2.0.0',
- '_where': '/some/path'
- })
- self.assertTrue(clean_json_attrs.Clean(**self._kwargs))
- self.assertListEqual(
- ['version'], list(self._read_temp_file('package.json').keys()))
- if __name__ == '__main__':
- unittest.main()
|