diff options
| author | Elena ``of Valhalla'' Grandi <valhalla@trueelena.org> | 2017-11-21 16:56:21 +0100 | 
|---|---|---|
| committer | Elena ``of Valhalla'' Grandi <valhalla@trueelena.org> | 2017-11-21 16:56:21 +0100 | 
| commit | bb14bc77bd21284136ed7cc092b93c1a8d6026c1 (patch) | |
| tree | 4fb57b42da2e5cc24367ad9dbca682ab8be5a80b /tests | |
| parent | 043e99bf5416e0899c02490fa600be4cfd049da1 (diff) | |
| parent | 851914e5da250e6a38e83bccf182ab8af1db0d32 (diff) | |
Merge branch 'master' into tellico
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/data/complex/items/28b15099c84b41ab892133cd64876a32.yaml | 6 | ||||
| -rw-r--r-- | tests/data/complex/items/73097121f1874a6ea2f927db7dc4f11e.yaml | 10 | ||||
| -rw-r--r-- | tests/data/complex/settings.yaml | 7 | ||||
| -rw-r--r-- | tests/data/wrong/items/b9a832309c984ada9f267471660c1313.yaml | 5 | ||||
| -rw-r--r-- | tests/data/wrong/settings.yaml | 3 | ||||
| -rw-r--r-- | tests/test_collection.py | 48 | 
6 files changed, 75 insertions, 4 deletions
| diff --git a/tests/data/complex/items/28b15099c84b41ab892133cd64876a32.yaml b/tests/data/complex/items/28b15099c84b41ab892133cd64876a32.yaml new file mode 100644 index 0000000..58b84bb --- /dev/null +++ b/tests/data/complex/items/28b15099c84b41ab892133cd64876a32.yaml @@ -0,0 +1,6 @@ +name: 'A tagless item' +description: | +  . +position: 'somewhere' +something: '' +tags: diff --git a/tests/data/complex/items/73097121f1874a6ea2f927db7dc4f11e.yaml b/tests/data/complex/items/73097121f1874a6ea2f927db7dc4f11e.yaml new file mode 100644 index 0000000..1c7070c --- /dev/null +++ b/tests/data/complex/items/73097121f1874a6ea2f927db7dc4f11e.yaml @@ -0,0 +1,10 @@ +name: 'An item' +description: | +  multi +  line +  description +position: 'over there' +something: '' +tags: +    - this +    - that diff --git a/tests/data/complex/settings.yaml b/tests/data/complex/settings.yaml index 57a1773..bd2179c 100644 --- a/tests/data/complex/settings.yaml +++ b/tests/data/complex/settings.yaml @@ -1,5 +1,6 @@  name: "Fully featured lesana collection"  lang: 'english' +entry_label: '{{ uid}}: {{ name }} ({{ tags }})'  fields:      - name: name        type: string @@ -11,6 +12,10 @@ fields:        index: free      - name: position        type: string -      index: facet +      index: field      - name: something        type: yaml +    - name: tags +      type: list +      list: string +      index: field diff --git a/tests/data/wrong/items/b9a832309c984ada9f267471660c1313.yaml b/tests/data/wrong/items/b9a832309c984ada9f267471660c1313.yaml new file mode 100644 index 0000000..ec44b7c --- /dev/null +++ b/tests/data/wrong/items/b9a832309c984ada9f267471660c1313.yaml @@ -0,0 +1,5 @@ +name: 'Problematic entry' +description: | +  . +position: 'somewhere' +number: 'four' diff --git a/tests/data/wrong/settings.yaml b/tests/data/wrong/settings.yaml index 9871421..ef9ab74 100644 --- a/tests/data/wrong/settings.yaml +++ b/tests/data/wrong/settings.yaml @@ -9,3 +9,6 @@ fields:      - name: position        type: string        index: facet +    - name: number +      type: integer +      help: "Enter an integer here" diff --git a/tests/test_collection.py b/tests/test_collection.py index 869828a..84f0a7a 100644 --- a/tests/test_collection.py +++ b/tests/test_collection.py @@ -54,7 +54,7 @@ class testCollection(unittest.TestCase):          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']), 3) +        self.assertEqual(len(self.collection.settings['fields']), 4)          self.assertEqual(len(self.collection.indexed_fields), 1)      def test_load_safe(self): @@ -80,6 +80,15 @@ class testCollection(unittest.TestCase):          for m in matches:              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) +        self.assertEqual(len(matches), 2) +        for m in matches: +            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()) @@ -232,13 +241,46 @@ class testComplexCollection(unittest.TestCase):              self.collection.settings['name'],              "Fully featured lesana collection"              ) -        self.assertEqual(len(self.collection.settings['fields']), 4) +        self.assertEqual(len(self.collection.settings['fields']), 5)          self.assertIsNotNone(self.collection.stemmer) -        self.assertEqual(len(self.collection.indexed_fields), 2) +        self.assertEqual(len(self.collection.indexed_fields), 4)      def test_index(self):          self.collection.update_cache() +    def test_indexing_list(self): +        self.collection.update_cache(['73097121f1874a6ea2f927db7dc4f11e.yaml']) +        self.collection.start_search('tags:this') +        res = self.collection.get_search_results() +        matches = list(res) +        self.assertEqual(len(matches), 1) +        for m in matches: +            self.assertIsInstance(m, lesana.Entry) + + +class testCollectionWithErrors(unittest.TestCase): +    @classmethod +    def setUpClass(self): +        self.collection = lesana.Collection('tests/data/wrong') + +    @classmethod +    def tearDownClass(self): +        shutil.rmtree(os.path.join(self.collection.basedir, '.lesana')) + +    def test_init(self): +        self.assertIsNotNone(self.collection.settings) +        self.assertEqual( +            self.collection.settings['name'], +            "Lesana collection with certain errors" +            ) +        self.assertEqual(len(self.collection.settings['fields']), 4) +        self.assertIsNotNone(self.collection.stemmer) +        self.assertEqual(len(self.collection.indexed_fields), 1) + +    def test_index(self): +        loaded = self.collection.update_cache() +        self.assertEqual(loaded, 0) +  class testCollectionCreation(unittest.TestCase):      def test_init(self): | 
