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'])
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"])
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)
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)
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()
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()
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()
def setUpClass(cls): cls.solr_conn = Solr(solr_url) cls.docman = DocManager(solr_url, auto_commit_interval=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/")
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()
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)