コード例 #1
0
 def test_replacement_unique_key(self):
     docman = DocManager(solr_url, unique_key='id')
     # Document coming from Solr. 'id' is the unique key.
     from_solr = {'id': 1, 'title': 'unique key replacement test'}
     # Replacement coming from an oplog entry in MongoDB. Still has '_id'.
     replacement = {'_id': 1, 'title': 'unique key replaced!'}
     replaced = docman.apply_update(from_solr, replacement)
     self.assertEqual('unique key replaced!', replaced['title'])
コード例 #2
0
 def test_replacement_unique_key(self):
     docman = DocManager(solr_url, unique_key="id")
     # Document coming from Solr. 'id' is the unique key.
     from_solr = {"id": 1, "title": "unique key replacement test"}
     # Replacement coming from an oplog entry in MongoDB. Still has '_id'.
     replacement = {"_id": 1, "title": "unique key replaced!"}
     replaced = docman.apply_update(from_solr, replacement)
     self.assertEqual("unique key replaced!", replaced["title"])
コード例 #3
0
 def test_replacement_unique_key(self):
     docman = DocManager(solr_url, unique_key='id')
     # Document coming from Solr. 'id' is the unique key.
     from_solr = {'id': 1, 'title': 'unique key replacement test'}
     # Replacement coming from an oplog entry in MongoDB. Still has '_id'.
     replacement = {'_id': 1, 'title': 'unique key replaced!'}
     replaced = docman.apply_update(from_solr, replacement)
     self.assertEqual('unique key replaced!', replaced['title'])
コード例 #4
0
 def test_invalid_url(self):
     """Ensure DocManager fails for a bad Solr url.
     """
     #Invalid URL
     count = 0
     try:
         DocManager("http://doesntexist.cskjdfhskdjfhdsom")
     except SystemError:
         count += 1
     self.assertTrue(count == 1)
コード例 #5
0
 def setUp(self):
     self._remove()
     try:
         os.unlink("oplog.timestamp")
     except OSError:
         pass
     open("oplog.timestamp", "w").close()
     docman = DocManager(solr_url, auto_commit_interval=0)
     self.connector = Connector(mongo_address=self.repl_set.uri,
                                ns_set=['test.test'],
                                doc_managers=(docman, ),
                                gridfs_set=['test.test'])
     retry_until_ok(self.conn.test.test.drop)
     retry_until_ok(self.conn.test.test.files.drop)
     retry_until_ok(self.conn.test.test.chunks.drop)
     self._remove()
     self.connector.start()
     assert_soon(lambda: len(self.connector.shard_set) > 0)
コード例 #6
0
 def test_solr_commit(self):
     """Test that documents get properly added to Solr.
     """
     docman = DocManager(solr_url)
     # test cases:
     # None = no autocommit
     # 0 = commit immediately
     # x > 0 = commit within x seconds
     for autocommit_interval in [None, 0, 1, 2]:
         docman.auto_commit_interval = autocommit_interval
         docman.upsert({'_id': '3', 'name': 'Waldo'}, *TESTARGS)
         if autocommit_interval is None:
             docman.commit()
         else:
             # Allow just a little extra time
             time.sleep(autocommit_interval + 1)
         results = list(self._search("name:Waldo"))
         self.assertEqual(
             len(results), 1, "should commit document with "
             "auto_commit_interval = %s" % str(autocommit_interval))
         self.assertEqual(results[0]["name"], "Waldo")
         self._remove()
コード例 #7
0
 def test_solr_commit(self):
     """Test that documents get properly added to Solr.
     """
     docman = DocManager(solr_url)
     # test cases:
     # None = no autocommit
     # 0 = commit immediately
     # x > 0 = commit within x seconds
     for autocommit_interval in [None, 0, 1, 2]:
         docman.auto_commit_interval = autocommit_interval
         docman.upsert({"_id": "3", "name": "Waldo"}, *TESTARGS)
         if autocommit_interval is None:
             docman.commit()
         else:
             # Allow just a little extra time
             time.sleep(autocommit_interval + 1)
         results = list(self._search("name:Waldo"))
         self.assertEqual(
             len(results), 1, "should commit document with " "auto_commit_interval = %s" % str(autocommit_interval)
         )
         self.assertEqual(results[0]["name"], "Waldo")
         self._remove()
コード例 #8
0
 def test_solr_commit(self):
     """Test that documents get properly added to Solr.
     """
     docc = {'_id': '3', 'name': 'Waldo', 'ns': 'test.test'}
     docman = DocManager("http://localhost:8983/solr")
     # test cases:
     # -1 = no autocommit
     # 0 = commit immediately
     # x > 0 = commit within x seconds
     for autocommit_interval in [None, 0, 1, 2]:
         docman.auto_commit_interval = autocommit_interval
         docman.upsert(docc)
         if autocommit_interval is None:
             docman.commit()
         else:
             # Allow just a little extra time
             time.sleep(autocommit_interval + 1)
         results = list(docman._search("Waldo"))
         self.assertEqual(len(results), 1,
                          "should commit document with "
                          "auto_commit_interval = %s" % str(
                              autocommit_interval))
         self.assertEqual(results[0]["name"], "Waldo")
         docman._remove()
         docman.commit()
コード例 #9
0
 def setUpClass(cls):
     cls.solr_conn = Solr(solr_url)
     cls.docman = DocManager(solr_url, auto_commit_interval=0)
コード例 #10
0
 def setUpClass(cls):
     """ Initializes the DocManager and a direct connection
     """
     cls.SolrDoc = DocManager("http://localhost:8983/solr/",
                              auto_commit_interval=0)
     cls.solr = Solr("http://localhost:8983/solr/")
コード例 #11
0
 def test_solr_commit(self):
     """Test that documents get properly added to Solr.
     """
     docc = {'_id': '3', 'name': 'Waldo', 'ns': 'test.test'}
     docman = DocManager("http://localhost:8983/solr")
     # test cases:
     # -1 = no autocommit
     # 0 = commit immediately
     # x > 0 = commit within x seconds
     for autocommit_interval in [None, 0, 1, 2]:
         docman.auto_commit_interval = autocommit_interval
         docman.upsert(docc)
         if autocommit_interval is None:
             docman.commit()
         else:
             # Allow just a little extra time
             time.sleep(autocommit_interval + 1)
         results = list(docman._search("Waldo"))
         self.assertEqual(
             len(results), 1, "should commit document with "
             "auto_commit_interval = %s" % str(autocommit_interval))
         self.assertEqual(results[0]["name"], "Waldo")
         docman._remove()
         docman.commit()
コード例 #12
0
 def setUpClass(cls):
     conn_str = "http://%s/solr" % solr_pair
     cls.solr_conn = Solr(conn_str)
     cls.docman = DocManager(conn_str, auto_commit_interval=0)