diff options
| -rw-r--r-- | tests/test_collection.py | 438 | 
1 files changed, 212 insertions, 226 deletions
| diff --git a/tests/test_collection.py b/tests/test_collection.py index 0d300d2..04ec410 100644 --- a/tests/test_collection.py +++ b/tests/test_collection.py @@ -10,19 +10,143 @@ import ruamel.yaml  import lesana -class testCollection(unittest.TestCase): +class testEntries(unittest.TestCase): +    def setUp(self): +        self.tmpdir = tempfile.mkdtemp() +        shutil.copytree('tests/data/simple', self.tmpdir, dirs_exist_ok=True) +        self.collection = lesana.Collection(self.tmpdir) +        self.basepath = self.collection.itemdir +        self.filenames = [] +      def tearDown(self): -        shutil.rmtree(os.path.join(self.collection.basedir, '.lesana')) +        shutil.rmtree(self.tmpdir) + +    def test_simple(self): +        fname = '085682ed-6792-499d-a3ab-9aebd683c011.yaml' +        with open(os.path.join(self.basepath, fname)) as fp: +            data = ruamel.yaml.safe_load(fp) +        entry = lesana.Entry(self.collection, data=data, fname=fname) +        self.assertEqual(entry.idterm, 'Q'+data['eid']) +        fname = '11189ee47ddf4796b718a483b379f976.yaml' +        eid = '11189ee47ddf4796b718a483b379f976' +        with open(os.path.join(self.basepath, fname)) as fp: +            data = ruamel.yaml.safe_load(fp) +        entry = lesana.Entry(self.collection, data=data, fname=fname) +        self.assertEqual(entry.idterm, 'Q'+eid) +        self.assertEqual(entry.short_id, eid[:8]) + +    def test_write_new(self): +        new_entry = lesana.Entry(self.collection) +        self.collection.save_entries(entries=[new_entry]) +        entry_fname = os.path.join(self.basepath, new_entry.fname) +        with open(entry_fname) as fp: +            text = fp.read() +        self.assertIn('quantity (integer): how many items are there', text) +        self.assertIn('other (yaml):', text) +        self.assertNotIn('position (string)', text) +        written = ruamel.yaml.safe_load(text) +        self.assertIsInstance(written['quantity'], int) +        self.assertIsInstance(written['name'], str) + +    def test_entry_representation(self): +        eid = '11189ee47ddf4796b718a483b379f976' +        entry = self.collection.entry_from_eid(eid) +        self.assertEqual( +            str(entry), +            eid +            ) +        label = '{{ eid }}: {{ name }}' +        self.collection.settings['entry_label'] = label +        self.assertEqual( +            str(entry), +            '{eid}: {name}'.format(eid=eid, name='Another item') +            ) + +    def test_entry_creation_eid_but_no_filename(self): +        fname = '11189ee47ddf4796b718a483b379f976.yaml' +        with open(os.path.join(self.basepath, fname)) as fp: +            data = ruamel.yaml.safe_load(fp) +        data['eid'] = '11189ee47ddf4796b718a483b379f976' +        entry = lesana.Entry(self.collection, data=data) +        self.assertEqual(entry.fname, fname) + +    def test_entry_creation_no_eid_no_filename(self): +        fname = '11189ee47ddf4796b718a483b379f976.yaml' +        with open(os.path.join(self.basepath, fname)) as fp: +            data = ruamel.yaml.safe_load(fp) +        entry = lesana.Entry(self.collection, data=data) +        self.assertIsNotNone(entry.eid) +        self.assertIsNotNone(entry.fname) + +    def test_entry_creation_filename_but_no_eid(self): +        fname = '11189ee47ddf4796b718a483b379f976.yaml' +        eid = '11189ee47ddf4796b718a483b379f976' +        with open(os.path.join(self.basepath, fname)) as fp: +            data = ruamel.yaml.safe_load(fp) +        entry = lesana.Entry(self.collection, data=data, fname=fname) +        self.assertEqual(entry.eid, eid) -    def test_empty(self): -        self.collection = lesana.Collection('tests/data/empty') +    def test_entry_str_filename_and_eid(self): +        fname = '11189ee47ddf4796b718a483b379f976.yaml' +        with open(os.path.join(self.basepath, fname)) as fp: +            data = ruamel.yaml.safe_load(fp) +        data['eid'] = '11189ee47ddf4796b718a483b379f976' +        entry = lesana.Entry(self.collection, data=data) +        self.assertEqual(str(entry), data['eid']) +        self.collection.settings['entry_label'] = '{{ eid }}: {{ name }}' +        self.assertEqual(str(entry), data['eid'] + ': Another item') + +    def test_entry_str_filename_no_eid(self): +        fname = '11189ee47ddf4796b718a483b379f976.yaml' +        with open(os.path.join(self.basepath, fname)) as fp: +            data = ruamel.yaml.safe_load(fp) +        entry = lesana.Entry(self.collection, data=data) +        eid = entry.eid +        self.assertEqual(str(entry), eid) +        self.collection.settings['entry_label'] = '{{ eid }}: {{ name }}' +        self.assertEqual(str(entry), eid + ': Another item') + +    def test_render_entry(self): +        fname = '11189ee47ddf4796b718a483b379f976.yaml' +        with open(os.path.join(self.basepath, fname)) as fp: +            data = ruamel.yaml.safe_load(fp) +        entry = lesana.Entry(self.collection, data=data) +        eid = entry.eid +        res = entry.render('tests/data/simple/templates/trivial_template.txt') +        self.assertIn(eid, res) + +    def test_empty_data(self): +        entry = lesana.Entry(self.collection) +        self.assertIn("name: ''", entry.yaml_data) +        self.assertIn('quantity: 0', entry.yaml_data) + + +class testEmptyCollection(unittest.TestCase): +    def setUp(self): +        self.tmpdir = tempfile.mkdtemp() +        shutil.copytree('tests/data/empty', self.tmpdir, dirs_exist_ok=True) +        self.collection = lesana.Collection(self.tmpdir) + +    def tearDown(self): +        shutil.rmtree(self.tmpdir) + +    def test_loaded(self):          self.assertEqual(self.collection.settings, {})          self.collection.update_cache()          self.assertIsNotNone(self.collection.stemmer) -    def test_load_simple(self): -        self.collection = lesana.Collection('tests/data/simple') + +class testSimpleCollection(unittest.TestCase): +    def setUp(self): +        self.tmpdir = tempfile.mkdtemp() +        shutil.copytree('tests/data/simple', self.tmpdir, dirs_exist_ok=True) +        self.collection = lesana.Collection(self.tmpdir) + +    def tearDown(self): +        shutil.rmtree(self.tmpdir) + +    def test_loaded(self):          self.assertIsNotNone(self.collection.settings)          self.assertEqual(              self.collection.settings['name'], @@ -34,36 +158,13 @@ class testCollection(unittest.TestCase):          self.collection.update_cache()          self.assertIsNotNone(self.collection.stemmer) -    def test_load_wrong_language(self): -        # This loads a collection with an invalid value in lang -        with self.assertLogs(level=logging.WARNING) as cm: -            self.collection = lesana.Collection('tests/data/wrong') -        self.assertEqual(len(cm.output), 1) -        self.assertIn("Invalid language", cm.output[0]) -        # The collection will default to english, but should still work. -        self.collection.update_cache() -        self.assertIsNotNone(self.collection.settings) -        self.assertIsNotNone(self.collection.stemmer) - -    def test_load_no_index_for_one_entry(self): -        # This loads a collection where some of the entries have no -        # "index" field -        with self.assertLogs(level=logging.WARNING): -            self.collection = lesana.Collection('tests/data/wrong') -        self.collection.update_cache() -        self.assertIsNotNone(self.collection.settings) -        self.assertIsNotNone(self.collection.stemmer) -        # Fields with no "index" entry are not indexed -        self.assertEqual(len(self.collection.settings['fields']), 7) -        self.assertEqual(len(self.collection.indexed_fields), 3) -      def test_load_safe(self): -        self.collection = lesana.Collection('tests/data/simple') +        # Simply run the code with self.collection.safe = True to check +        # that it doesn't break.          self.collection.safe = True          self.collection.update_cache()      def test_full_search(self): -        self.collection = lesana.Collection('tests/data/simple')          self.collection.start_search('Item')          res = self.collection.get_all_search_results()          matches = list(res) @@ -72,7 +173,6 @@ class testCollection(unittest.TestCase):              self.assertIsInstance(m, lesana.Entry)      def test_search(self): -        self.collection = lesana.Collection('tests/data/simple')          self.collection.start_search('Item')          res = self.collection.get_search_results()          matches = list(res) @@ -81,7 +181,6 @@ class testCollection(unittest.TestCase):              self.assertIsInstance(m, lesana.Entry)      def test_search_wildcard(self): -        self.collection = lesana.Collection('tests/data/simple')          self.collection.start_search('Ite*')          res = self.collection.get_search_results()          matches = list(res) @@ -90,14 +189,12 @@ class testCollection(unittest.TestCase):              self.assertIsInstance(m, lesana.Entry)      def test_search_non_init(self): -        self.collection = lesana.Collection('tests/data/simple')          matches = list(self.collection.get_search_results())          self.assertEqual(matches, [])          matches = list(self.collection.get_all_search_results())          self.assertEqual(matches, [])      def test_all_entries(self): -        self.collection = lesana.Collection('tests/data/simple')          res = self.collection.get_all_documents()          matches = list(res)          self.assertEqual(len(matches), 3) @@ -105,7 +202,6 @@ class testCollection(unittest.TestCase):              self.assertIsInstance(m, lesana.Entry)      def test_entry_from_eid(self): -        self.collection = lesana.Collection('tests/data/simple')          entry = self.collection.entry_from_eid(              '11189ee47ddf4796b718a483b379f976'              ) @@ -117,7 +213,6 @@ class testCollection(unittest.TestCase):          self.assertEqual(entry.eid, '11189ee47ddf4796b718a483b379f976')      def test_entry_from_short_eid(self): -        self.collection = lesana.Collection('tests/data/simple')          entries = self.collection.entries_from_short_eid(              '11189ee4'              ) @@ -134,35 +229,22 @@ class testCollection(unittest.TestCase):          self.assertEqual(len(entries), 0)      def test_index_missing_file(self): -        self.collection = lesana.Collection('tests/data/simple')          with self.assertLogs(level=logging.WARNING) as cm:              self.collection.update_cache(['non_existing_file'])          self.assertEqual(len(cm.output), 1)          self.assertIn("non_existing_file", cm.output[0])      def test_get_entry_missing_eid(self): -        self.collection = lesana.Collection('tests/data/simple')          entry = self.collection.entry_from_eid('this is not an eid')          self.assertIsNone(entry)      def test_render_collection(self): -        self.collection = lesana.Collection('tests/data/simple')          template = self.collection.get_template(              'tests/data/simple/templates/collection_template.txt'              )          res = template.render(entries=self.collection.get_all_documents())          self.assertIn('11189ee4: Another item', res) - -class testSimpleCollection(unittest.TestCase): -    def setUp(self): -        self.tmpdir = tempfile.mkdtemp() -        shutil.copytree('tests/data/simple', self.tmpdir, dirs_exist_ok=True) -        self.collection = lesana.Collection(self.tmpdir) - -    def tearDown(self): -        shutil.rmtree(self.tmpdir) -      def test_update(self):          self.collection.update_field('Item', field="position", value="new_pos")          with open(os.path.join( @@ -186,126 +268,14 @@ class testSimpleCollection(unittest.TestCase):          ) -class testEntries(unittest.TestCase): +class testComplexCollection(unittest.TestCase):      def setUp(self): -        self.collection = lesana.Collection('tests/data/simple') -        self.basepath = 'tests/data/simple/items' -        self.filenames = [] +        self.tmpdir = tempfile.mkdtemp() +        shutil.copytree('tests/data/complex', self.tmpdir, dirs_exist_ok=True) +        self.collection = lesana.Collection(self.tmpdir)      def tearDown(self): -        for fname in self.filenames: -            os.remove(fname) -        shutil.rmtree(os.path.join(self.collection.basedir, '.lesana')) - -    def test_simple(self): -        fname = '085682ed-6792-499d-a3ab-9aebd683c011.yaml' -        with open(os.path.join(self.basepath, fname)) as fp: -            data = ruamel.yaml.safe_load(fp) -        entry = lesana.Entry(self.collection, data=data, fname=fname) -        self.assertEqual(entry.idterm, 'Q'+data['eid']) -        fname = '11189ee47ddf4796b718a483b379f976.yaml' -        eid = '11189ee47ddf4796b718a483b379f976' -        with open(os.path.join(self.basepath, fname)) as fp: -            data = ruamel.yaml.safe_load(fp) -        entry = lesana.Entry(self.collection, data=data, fname=fname) -        self.assertEqual(entry.idterm, 'Q'+eid) -        self.assertEqual(entry.short_id, eid[:8]) - -    def test_write_new(self): -        new_entry = lesana.Entry(self.collection) -        self.collection.save_entries(entries=[new_entry]) -        entry_fname = 'tests/data/simple/items/' + new_entry.fname -        self.filenames.append(entry_fname) -        with open(entry_fname) as fp: -            text = fp.read() -        self.assertIn('quantity (integer): how many items are there', text) -        self.assertIn('other (yaml):', text) -        self.assertNotIn('position (string)', text) -        written = ruamel.yaml.safe_load(text) -        self.assertIsInstance(written['quantity'], int) -        self.assertIsInstance(written['name'], str) - -    def test_entry_representation(self): -        eid = '11189ee47ddf4796b718a483b379f976' -        entry = self.collection.entry_from_eid(eid) -        self.assertEqual( -            str(entry), -            eid -            ) -        label = '{{ eid }}: {{ name }}' -        self.collection.settings['entry_label'] = label -        self.assertEqual( -            str(entry), -            '{eid}: {name}'.format(eid=eid, name='Another item') -            ) - -    def test_entry_creation_eid_but_no_filename(self): -        fname = '11189ee47ddf4796b718a483b379f976.yaml' -        with open(os.path.join(self.basepath, fname)) as fp: -            data = ruamel.yaml.safe_load(fp) -        data['eid'] = '11189ee47ddf4796b718a483b379f976' -        entry = lesana.Entry(self.collection, data=data) -        self.assertEqual(entry.fname, fname) - -    def test_entry_creation_no_eid_no_filename(self): -        fname = '11189ee47ddf4796b718a483b379f976.yaml' -        with open(os.path.join(self.basepath, fname)) as fp: -            data = ruamel.yaml.safe_load(fp) -        entry = lesana.Entry(self.collection, data=data) -        self.assertIsNotNone(entry.eid) -        self.assertIsNotNone(entry.fname) - -    def test_entry_creation_filename_but_no_eid(self): -        fname = '11189ee47ddf4796b718a483b379f976.yaml' -        eid = '11189ee47ddf4796b718a483b379f976' -        with open(os.path.join(self.basepath, fname)) as fp: -            data = ruamel.yaml.safe_load(fp) -        entry = lesana.Entry(self.collection, data=data, fname=fname) -        self.assertEqual(entry.eid, eid) - -    def test_entry_str_filename_and_eid(self): -        fname = '11189ee47ddf4796b718a483b379f976.yaml' -        with open(os.path.join(self.basepath, fname)) as fp: -            data = ruamel.yaml.safe_load(fp) -        data['eid'] = '11189ee47ddf4796b718a483b379f976' -        entry = lesana.Entry(self.collection, data=data) -        self.assertEqual(str(entry), data['eid']) -        self.collection.settings['entry_label'] = '{{ eid }}: {{ name }}' -        self.assertEqual(str(entry), data['eid'] + ': Another item') - -    def test_entry_str_filename_no_eid(self): -        fname = '11189ee47ddf4796b718a483b379f976.yaml' -        with open(os.path.join(self.basepath, fname)) as fp: -            data = ruamel.yaml.safe_load(fp) -        entry = lesana.Entry(self.collection, data=data) -        eid = entry.eid -        self.assertEqual(str(entry), eid) -        self.collection.settings['entry_label'] = '{{ eid }}: {{ name }}' -        self.assertEqual(str(entry), eid + ': Another item') - -    def test_render_entry(self): -        fname = '11189ee47ddf4796b718a483b379f976.yaml' -        with open(os.path.join(self.basepath, fname)) as fp: -            data = ruamel.yaml.safe_load(fp) -        entry = lesana.Entry(self.collection, data=data) -        eid = entry.eid -        res = entry.render('tests/data/simple/templates/trivial_template.txt') -        self.assertIn(eid, res) - -    def test_empty_data(self): -        entry = lesana.Entry(self.collection) -        self.assertIn("name: ''", entry.yaml_data) -        self.assertIn('quantity: 0', entry.yaml_data) - - -class testComplexCollection(unittest.TestCase): -    @classmethod -    def setUpClass(self): -        self.collection = lesana.Collection('tests/data/complex') - -    @classmethod -    def tearDownClass(self): -        shutil.rmtree(os.path.join(self.collection.basedir, '.lesana')) +        shutil.rmtree(self.tmpdir)      def test_init(self):          self.assertIsNotNone(self.collection.settings) @@ -344,13 +314,35 @@ class testComplexCollection(unittest.TestCase):  class testCollectionWithErrors(unittest.TestCase): -    @classmethod -    def setUpClass(self): -        self.collection = lesana.Collection('tests/data/wrong') +    def setUp(self): +        self.tmpdir = tempfile.mkdtemp() +        shutil.copytree('tests/data/wrong', self.tmpdir, dirs_exist_ok=True) +        self.collection = lesana.Collection(self.tmpdir) -    @classmethod -    def tearDownClass(self): -        shutil.rmtree(os.path.join(self.collection.basedir, '.lesana')) +    def tearDown(self): +        shutil.rmtree(self.tmpdir) + +    def test_load_wrong_language(self): +        # We reload this collection, with an invalid value in lang, to +        # check that the log contains a warning. +        with self.assertLogs(level=logging.WARNING) as cm: +            self.collection = lesana.Collection(self.tmpdir) +        self.assertEqual(len(cm.output), 1) +        self.assertIn("Invalid language", cm.output[0]) +        # The collection will default to english, but should still work. +        self.collection.update_cache() +        self.assertIsNotNone(self.collection.settings) +        self.assertIsNotNone(self.collection.stemmer) + +    def test_no_index_for_one_field(self): +        # In the “wrong” collection, some of the entries have no "index" +        # field. +        self.collection.update_cache() +        self.assertIsNotNone(self.collection.settings) +        self.assertIsNotNone(self.collection.stemmer) +        # Fields with no "index" entry are not indexed +        self.assertEqual(len(self.collection.settings['fields']), 7) +        self.assertEqual(len(self.collection.indexed_fields), 3)      def test_init(self):          self.assertIsNotNone(self.collection.settings) @@ -368,66 +360,65 @@ class testCollectionWithErrors(unittest.TestCase):  class testCollectionCreation(unittest.TestCase): +    def setUp(self): +        self.tmpdir = tempfile.mkdtemp() + +    def tearDown(self): +        shutil.rmtree(self.tmpdir) +      def test_init(self): -        tmpdir = tempfile.mkdtemp() -        collection = lesana.Collection.init(tmpdir) +        collection = lesana.Collection.init(self.tmpdir)          self.assertIsInstance(collection, lesana.Collection) -        self.assertTrue(os.path.isdir(os.path.join(tmpdir, '.git'))) -        self.assertTrue(os.path.isdir(os.path.join(tmpdir, '.lesana'))) -        self.assertTrue(os.path.isfile(os.path.join(tmpdir, 'settings.yaml'))) -        self.assertTrue(os.path.isfile(os.path.join(tmpdir, '.gitignore'))) +        self.assertTrue(os.path.isdir(os.path.join(self.tmpdir, '.git'))) +        self.assertTrue(os.path.isdir(os.path.join(self.tmpdir, '.lesana'))) +        self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, 'settings.yaml'))) +        self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, '.gitignore')))          # and then run it twice on the same directory, nothing should break -        collection = lesana.Collection.init(tmpdir) +        collection = lesana.Collection.init(self.tmpdir)          self.assertIsInstance(collection, lesana.Collection) -        self.assertTrue(os.path.isdir(os.path.join(tmpdir, '.git'))) -        self.assertTrue(os.path.isdir(os.path.join(tmpdir, '.lesana'))) -        self.assertTrue(os.path.isfile(os.path.join(tmpdir, 'settings.yaml'))) -        self.assertTrue(os.path.isfile(os.path.join(tmpdir, '.gitignore'))) -        created = lesana.Collection(tmpdir) +        self.assertTrue(os.path.isdir(os.path.join(self.tmpdir, '.git'))) +        self.assertTrue(os.path.isdir(os.path.join(self.tmpdir, '.lesana'))) +        self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, 'settings.yaml'))) +        self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, '.gitignore'))) +        created = lesana.Collection(self.tmpdir)          self.assertTrue(created.settings['git']) -        shutil.rmtree(tmpdir)      def _do_nothing(*args, **kwargs):          # A function that does nothing instead of editing a file          pass      def test_init_edit_file(self): -        tmpdir = tempfile.mkdtemp() -        collection = lesana.Collection.init(tmpdir, edit_file=self._do_nothing) +        collection = lesana.Collection.init(self.tmpdir, edit_file=self._do_nothing)          self.assertIsInstance(collection, lesana.Collection) -        self.assertTrue(os.path.isdir(os.path.join(tmpdir, '.git'))) -        self.assertTrue(os.path.isdir(os.path.join(tmpdir, '.lesana'))) -        self.assertTrue(os.path.isfile(os.path.join(tmpdir, 'settings.yaml'))) -        self.assertTrue(os.path.isfile(os.path.join(tmpdir, '.gitignore'))) -        shutil.rmtree(tmpdir) +        self.assertTrue(os.path.isdir(os.path.join(self.tmpdir, '.git'))) +        self.assertTrue(os.path.isdir(os.path.join(self.tmpdir, '.lesana'))) +        self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, 'settings.yaml'))) +        self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, '.gitignore')))      def test_init_no_git(self): -        tmpdir = tempfile.mkdtemp() -        collection = lesana.Collection.init(tmpdir, git_enabled=False) +        collection = lesana.Collection.init(self.tmpdir, git_enabled=False)          self.assertIsInstance(collection, lesana.Collection) -        self.assertFalse(os.path.isdir(os.path.join(tmpdir, '.git'))) -        self.assertTrue(os.path.isdir(os.path.join(tmpdir, '.lesana'))) -        self.assertTrue(os.path.isfile(os.path.join(tmpdir, 'settings.yaml'))) -        self.assertFalse(os.path.isfile(os.path.join(tmpdir, '.gitignore'))) +        self.assertFalse(os.path.isdir(os.path.join(self.tmpdir, '.git'))) +        self.assertTrue(os.path.isdir(os.path.join(self.tmpdir, '.lesana'))) +        self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, 'settings.yaml'))) +        self.assertFalse(os.path.isfile(os.path.join(self.tmpdir, '.gitignore')))          # and then run it twice on the same directory, nothing should break -        collection = lesana.Collection.init(tmpdir, git_enabled=False) +        collection = lesana.Collection.init(self.tmpdir, git_enabled=False)          self.assertIsInstance(collection, lesana.Collection) -        self.assertFalse(os.path.isdir(os.path.join(tmpdir, '.git'))) -        self.assertTrue(os.path.isdir(os.path.join(tmpdir, '.lesana'))) -        self.assertTrue(os.path.isfile(os.path.join(tmpdir, 'settings.yaml'))) -        self.assertFalse(os.path.isfile(os.path.join(tmpdir, '.gitignore'))) -        created = lesana.Collection(tmpdir) +        self.assertFalse(os.path.isdir(os.path.join(self.tmpdir, '.git'))) +        self.assertTrue(os.path.isdir(os.path.join(self.tmpdir, '.lesana'))) +        self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, 'settings.yaml'))) +        self.assertFalse(os.path.isfile(os.path.join(self.tmpdir, '.gitignore'))) +        created = lesana.Collection(self.tmpdir)          self.assertFalse(created.settings['git']) -        shutil.rmtree(tmpdir)      def test_deletion(self): -        tmpdir = tempfile.mkdtemp() -        shutil.copy('tests/data/simple/settings.yaml', tmpdir) +        shutil.copy('tests/data/simple/settings.yaml', self.tmpdir)          shutil.copytree(              'tests/data/simple/items', -            os.path.join(tmpdir, 'items'), +            os.path.join(self.tmpdir, 'items'),              ) -        collection = lesana.Collection.init(tmpdir) +        collection = lesana.Collection.init(self.tmpdir)          # We start with one item indexed with the term "another"          collection.start_search('another')          mset = collection._enquire.get_mset(0, 10) @@ -436,7 +427,7 @@ class testCollectionCreation(unittest.TestCase):          collection.remove_entries(['11189ee47ddf4796b718a483b379f976'])          # An now we should have none          self.assertFalse(os.path.exists(os.path.join( -            tmpdir, +            self.tmpdir,              'items',              '11189ee47ddf4796b718a483b379f976.yaml'              ))) @@ -445,13 +436,12 @@ class testCollectionCreation(unittest.TestCase):          self.assertEqual(mset.get_matches_estimated(), 0)      def test_partial_eid_deletion(self): -        tmpdir = tempfile.mkdtemp() -        shutil.copy('tests/data/simple/settings.yaml', tmpdir) +        shutil.copy('tests/data/simple/settings.yaml', self.tmpdir)          shutil.copytree(              'tests/data/simple/items', -            os.path.join(tmpdir, 'items'), +            os.path.join(self.tmpdir, 'items'),              ) -        collection = lesana.Collection.init(tmpdir) +        collection = lesana.Collection.init(self.tmpdir)          # We start with one item indexed with the term "another"          collection.start_search('another')          mset = collection._enquire.get_mset(0, 10) @@ -460,7 +450,7 @@ class testCollectionCreation(unittest.TestCase):          collection.remove_entries(['11189ee4'])          # An now we should have none          self.assertFalse(os.path.exists(os.path.join( -            tmpdir, +            self.tmpdir,              'items',              '11189ee47ddf4796b718a483b379f976.yaml'              ))) @@ -477,15 +467,14 @@ class testCollectionCreation(unittest.TestCase):          return found      def test_git_adding(self): -        tmpdir = tempfile.mkdtemp() -        shutil.copy('tests/data/simple/settings.yaml', tmpdir) +        shutil.copy('tests/data/simple/settings.yaml', self.tmpdir)          shutil.copytree(              'tests/data/simple/items', -            os.path.join(tmpdir, 'items'), +            os.path.join(self.tmpdir, 'items'),              ) -        collection = lesana.Collection.init(tmpdir) +        collection = lesana.Collection.init(self.tmpdir)          fname = '11189ee47ddf4796b718a483b379f976.yaml' -        repo = git.Repo(tmpdir) +        repo = git.Repo(self.tmpdir)          # By default, this collection doesn't have any git entry in the          # settings (but there is a repo)          collection.git_add_files([os.path.join(collection.itemdir, fname)]) @@ -499,12 +488,10 @@ class testCollectionCreation(unittest.TestCase):          collection.settings['git'] = True          collection.git_add_files([os.path.join(collection.itemdir, fname)])          self.assertTrue(self._find_file_in_git_index(fname, repo.index)) -        shutil.rmtree(tmpdir)      def test_init_custom_settings(self): -        tmpdir = tempfile.mkdtemp()          collection = lesana.Collection.init( -            tmpdir, +            self.tmpdir,              edit_file=self._do_nothing,              settings={                  'name': 'A different name', @@ -515,10 +502,9 @@ class testCollectionCreation(unittest.TestCase):                  },              )          self.assertIsInstance(collection, lesana.Collection) -        self.assertTrue(os.path.isfile(os.path.join(tmpdir, 'settings.yaml'))) +        self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, 'settings.yaml')))          self.assertEqual(collection.settings['name'], 'A different name')          self.assertEqual(len(collection.settings['fields']), 2) -        shutil.rmtree(tmpdir)  if __name__ == '__main__': | 
