[Zope-CVS] CVS: Products/ZCTextIndex/tests - testIndex.py:1.1.2.5 testZCTextIndex.py:1.1.2.4

Guido van Rossum guido@python.org
Thu, 2 May 2002 22:11:03 -0400


Update of /cvs-repository/Products/ZCTextIndex/tests
In directory cvs.zope.org:/tmp/cvs-serv17358/tests

Modified Files:
      Tag: TextIndexDS9-branch
	testIndex.py testZCTextIndex.py 
Log Message:
Refactor the Index classes.  The behavior of index_object() (getting
an attribute given by an attribute name passed to the constructor)
belongs in the ZCTextIndex class, but not in the Index class -- the
ZCTextIndex must conform to the PluggableIndexInterface, but Index
need not.  To indicate the change, and avoid future confusion, I've
renamed Index.index_object() and Index.unindex_object() to index_doc()
and unindex_doc().  The index_doc() method takes a string as its
second argument.  The ZCTextIndex.index_object() method class performs
the text extraction.


=== Products/ZCTextIndex/tests/testIndex.py 1.1.2.4 => 1.1.2.5 ===
 
 
-class Indexable:
-    def __init__(self, text):
-        self.text = text
-
-class MethodIndexable:
-    def __init__(self, text):
-        self._text = text
-
-    def text(self):
-        return self._text
-
-
 class IndexTest(TestCase):
     def setUp(self):
         self.lexicon = SimpleLexicon()
-        self.index = Index(self.lexicon, "text")
+        self.index = Index(self.lexicon)
 
     def test_index_document(self, DOCID=1):
-        doc = Indexable("simple document contains five words")
-        self.index.index_object(DOCID, doc)
+        doc = "simple document contains five words"
+        self.index.index_doc(DOCID, doc)
         self.assert_(self.index._docweight[DOCID])
         self.assertEqual(len(self.index._wordinfo), 5)
         self.assertEqual(len(self.index._docwords), 1)
@@ -74,16 +62,16 @@
     def test_unindex_document(self):
         DOCID = 1
         self.test_index_document(DOCID)
-        self.index.unindex_object(DOCID)
+        self.index.unindex_doc(DOCID)
         self.assertEqual(len(self.index._docweight), 0)
         self.assertEqual(len(self.index._wordinfo), 0)
         self.assertEqual(len(self.index._docwords), 0)
 
     def test_index_two_documents(self):
         self.test_index_document()
-        doc = MethodIndexable("another document just four")
+        doc = "another document just four"
         DOCID = 2
-        self.index.index_object(DOCID, doc)
+        self.index.index_doc(DOCID, doc)
         self.assert_(self.index._docweight[DOCID])
         self.assertEqual(len(self.index._wordinfo), 8)
         self.assertEqual(len(self.index._docwords), 2)
@@ -102,7 +90,7 @@
     def test_index_two_unindex_one(self):
         # index two documents, unindex one, and test the results
         self.test_index_two_documents()
-        self.index.unindex_object(1)
+        self.index.unindex_doc(1)
         DOCID = 2
         self.assertEqual(len(self.index._docweight), 1)
         self.assert_(self.index._docweight[DOCID])
@@ -114,8 +102,8 @@
             self.assert_(map.has_key(DOCID))
 
     def test_index_duplicated_words(self, DOCID=1):
-        doc = Indexable("very simple repeat repeat repeat document test")
-        self.index.index_object(DOCID, doc)
+        doc = "very simple repeat repeat repeat document test"
+        self.index.index_doc(DOCID, doc)
         self.assert_(self.index._docweight[DOCID])
         self.assertEqual(len(self.index._wordinfo), 5)
         self.assertEqual(len(self.index._docwords), 1)
@@ -128,21 +116,19 @@
             self.assert_(map.has_key(DOCID))
 
     def test_simple_query_oneresult(self):
-        self.index.index_object(1, MethodIndexable('not the same document'))
+        self.index.index_doc(1, 'not the same document')
         results = self.index.search("document")
         self.assertEqual(len(results), 1)
         self.assert_(results.has_key(1))
 
     def test_simple_query_noresults(self):
-        self.index.index_object(1, MethodIndexable('not the same document'))
+        self.index.index_doc(1, 'not the same document')
         results = self.index.search("frobnicate")
         self.assertEqual(len(results), 0)
 
     def test_query_oneresult(self):
-        self.index.index_object(1, Indexable(
-            'not the same document'))
-        self.index.index_object(2, MethodIndexable(
-            'something about something else'))
+        self.index.index_doc(1, 'not the same document')
+        self.index.index_doc(2, 'something about something else')
         results = self.index.search("document")
         self.assertEqual(len(results), 1)
         self.assert_(results.has_key(1))


=== Products/ZCTextIndex/tests/testZCTextIndex.py 1.1.2.3 => 1.1.2.4 ===
 import unittest
 
+class Indexable:
+    def __init__(self, text):
+        self.text = text
+
 # The tests classes below create a ZCTextIndex().  Then they create
 # instance variables that point to the internal components used by
 # ZCTextIndex.  These tests run the individual module unit tests with
@@ -20,7 +24,7 @@
         # the only non-stopword is question
         text = ("to be or not to be "
                 "that is the question")
-        doc = testIndex.Indexable(text)
+        doc = Indexable(text)
         self.zc_index.index_object(1, doc)
         for word in text.split():
             if word != "question":
@@ -49,7 +53,7 @@
     def add_docs(self):
         for i in range(len(self.docs)):
             text = self.docs[i]
-            obj = testIndex.Indexable(text)
+            obj = Indexable(text)
             self.zc_index.index_object(i + 1, obj)
 
     def compareSet(self, set, dict):