Exemplo n.º 1
0
class CommitingTestCase(unittest.TestCase):

    def setUp(self):
        self.client = SolrClient(SOLR_URL)

    @inlineCallbacks
    def testCommit(self):
        """L{SolrClient.commits} commits the changes to Solr."""
        doc = {'id': _randomString(20)}
        yield self.client.add(doc)
        r = yield self.client.search('id:%s' % doc['id'])
        self.assertEqual(r.results.numFound, 0,
                         'Document addition was commited')

        yield self.client.commit()

        r = yield self.client.search('id:%s' % doc['id'])
        self.assertEqual(r.results.numFound, 1,
                         'Commit did not work')

    @inlineCallbacks
    def testRollback(self):
        """
        L{SolrClient.rollback} withdraws all the changes since the last commit.
        """
        doc = {'id': _randomString(20)}
        yield self.client.add(doc)
        yield self.client.rollback()
        yield self.client.commit()

        r = yield self.client.search('id:%s' % doc['id'])

        self.assertEqual(r.results.numFound, 0,
                         'Rollback did not work')

    @inlineCallbacks
    def testsOptimize(self):
        """L{SolrClient.optimize} commits and optimizes the index."""
        doc = {'id': _randomString(20)}
        yield self.client.add(doc)
        r = yield self.client.search('id:%s' % doc['id'])
        self.assertEqual(r.results.numFound, 0,
                         'Document addition was commited')

        yield self.client.optimize()

        r = yield self.client.search('id:%s' % doc['id'])
        self.assertEqual(r.results.numFound, 1,
                         'Optimize did not work')