def test_data_to_json(self): """ Tests that data_to_json serializes dicts / objects / models to json """ from rubber.instanceutils import data_to_json # with a dict data = {'foo':'bar'} json_data = json.dumps(data) self.assertEquals(json_data, data_to_json(data)) # with a string json_data = json.dumps(data) self.assertEquals(json_data, data_to_json(json_data)) # try a class that implements to_indexed_json class Foo(object): def to_indexed_json(self): return json_data self.assertEquals(json_data, data_to_json(Foo())) # try a django model try: from django.db import models class TestModel(models.Model): foo = models.CharField(max_length=3) bar = TestModel(foo='bar') self.assertEquals(json_data, data_to_json(bar)) except ImportError: pass
def test_search(self): """ Checks that we call the right elasticsearch endpoint for searching """ from rubber import resource requestmock = RequestMock() resource.requests = requestmock q = {'query': {'term': {'user': '******'}}} self.Article.elasticsearch.search(q, toto='titi') self.assertEquals(1, len(requestmock.stack)) self.assertEquals('http://example.com:9200/tests/article/_search', requestmock.stack[0]['url']) self.assertEquals('get', requestmock.stack[0]['method']) self.assertEquals('titi', requestmock.stack[0]['kwargs']['toto']) from rubber.instanceutils import data_to_json self.assertEquals(data_to_json(q), requestmock.stack[0]['kwargs']['data']) self.Article.elasticsearch.mapping.put({'some': 'mapping'}, toto='titi') self.assertEquals(2, len(requestmock.stack)) self.assertEquals('http://example.com:9200/tests/article/_mapping', requestmock.stack[1]['url']) self.assertEquals('put', requestmock.stack[1]['method']) self.assertEquals('titi', requestmock.stack[1]['kwargs']['toto'])
def test_search(self): """ Checks that we call the right elasticsearch endpoint for searching """ from rubber import resource requestmock = RequestMock() resource.requests = requestmock q = {'query': {'term': {'user': '******'}}} self.Article.elasticsearch.search(q, toto='titi') self.assertEquals(1, len(requestmock.stack)) self.assertEquals('http://example.com:9200/tests/article/_search', requestmock.stack[0]['url']) self.assertEquals('GET', requestmock.stack[0]['method']) self.assertEquals('titi', requestmock.stack[0]['kwargs']['toto']) from rubber.instanceutils import data_to_json self.assertEquals(data_to_json(q), requestmock.stack[0]['kwargs']['data']) self.Article.elasticsearch.mapping.put({'some': 'mapping'}, toto='titi') self.assertEquals(2, len(requestmock.stack)) self.assertEquals('http://example.com:9200/tests/article/_mapping', requestmock.stack[1]['url']) self.assertEquals('PUT', requestmock.stack[1]['method']) self.assertEquals('titi', requestmock.stack[1]['kwargs']['toto'])