Skip to content
This repository was archived by the owner on Aug 30, 2024. It is now read-only.

Commit e1b5a32

Browse files
authored
Merge pull request #335 from cloudant/fix-index-tests
Fix index tests following Mango maximum key value patch
2 parents 52da253 + e62faab commit e1b5a32

File tree

2 files changed

+196
-207
lines changed

2 files changed

+196
-207
lines changed

tests/unit/database_tests.py

Lines changed: 101 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1198,22 +1198,22 @@ def test_create_json_index(self):
11981198
"""
11991199
index = self.db.create_query_index(fields=['name', 'age'])
12001200
self.assertIsInstance(index, Index)
1201+
12011202
ddoc = self.db[index.design_document_id]
1203+
1204+
self.assertEquals(ddoc['_id'], index.design_document_id)
12021205
self.assertTrue(ddoc['_rev'].startswith('1-'))
1203-
self.assertEqual(ddoc,
1204-
{'_id': index.design_document_id,
1205-
'_rev': ddoc['_rev'],
1206-
'indexes': {},
1207-
'lists': {},
1208-
'shows': {},
1209-
'language': 'query',
1210-
'views': {index.name: {'map': {'fields': {'name': 'asc',
1211-
'age': 'asc'}},
1212-
'reduce': '_count',
1213-
'options': {'def': {'fields': ['name',
1214-
'age']},
1215-
}}}}
1216-
)
1206+
1207+
self.assertEquals(ddoc['indexes'], {})
1208+
self.assertEquals(ddoc['language'], 'query')
1209+
self.assertEquals(ddoc['lists'], {})
1210+
self.assertEquals(ddoc['shows'], {})
1211+
1212+
index = ddoc['views'][index.name]
1213+
self.assertEquals(index['map']['fields']['age'], 'asc')
1214+
self.assertEquals(index['map']['fields']['name'], 'asc')
1215+
self.assertEquals(index['options']['def']['fields'], ['name', 'age'])
1216+
self.assertEquals(index['reduce'], '_count')
12171217

12181218
def test_create_text_index(self):
12191219
"""
@@ -1225,62 +1225,65 @@ def test_create_text_index(self):
12251225
{'name': 'age', 'type':'number'}]
12261226
)
12271227
self.assertIsInstance(index, TextIndex)
1228+
12281229
ddoc = self.db[index.design_document_id]
1230+
1231+
self.assertEquals(ddoc['_id'], index.design_document_id)
12291232
self.assertTrue(ddoc['_rev'].startswith('1-'))
1230-
self.assertEqual(ddoc,
1231-
{'_id': index.design_document_id,
1232-
'_rev': ddoc['_rev'],
1233-
'language': 'query',
1234-
'views': {},
1235-
'lists': {},
1236-
'shows': {},
1237-
'indexes': {index.name: {'index': {'index_array_lengths': True,
1238-
'fields': [{'name': 'name', 'type': 'string'},
1239-
{'name': 'age', 'type': 'number'}],
1240-
'default_field': {},
1241-
'default_analyzer': 'keyword',
1242-
'selector': {}},
1243-
'analyzer': {'name': 'perfield',
1244-
'default': 'keyword',
1245-
'fields': {'$default': 'standard'}}}}}
1246-
)
1233+
1234+
self.assertEquals(ddoc['language'], 'query')
1235+
self.assertEquals(ddoc['lists'], {})
1236+
self.assertEquals(ddoc['shows'], {})
1237+
self.assertEquals(ddoc['views'], {})
1238+
1239+
text_index = ddoc['indexes'][index.name]
1240+
self.assertEquals(text_index['analyzer']['default'], 'keyword')
1241+
self.assertEquals(text_index['analyzer']['fields']['$default'], 'standard')
1242+
self.assertEquals(text_index['analyzer']['name'], 'perfield')
1243+
self.assertEquals(text_index['index']['default_analyzer'], 'keyword')
1244+
self.assertEquals(text_index['index']['default_field'], {})
1245+
self.assertEquals(text_index['index']['fields'], [{'name': 'name', 'type': 'string'}, {'name': 'age', 'type': 'number'}])
1246+
self.assertEquals(text_index['index']['selector'], {})
1247+
self.assertTrue(text_index['index']['index_array_lengths'])
12471248

12481249
def test_create_all_fields_text_index(self):
12491250
"""
12501251
Ensure that a text index is created for all fields as expected.
12511252
"""
12521253
index = self.db.create_query_index(index_type='text')
12531254
self.assertIsInstance(index, TextIndex)
1255+
12541256
ddoc = self.db[index.design_document_id]
1257+
1258+
self.assertEquals(ddoc['_id'], index.design_document_id)
12551259
self.assertTrue(ddoc['_rev'].startswith('1-'))
1256-
self.assertEqual(ddoc,
1257-
{'_id': index.design_document_id,
1258-
'_rev': ddoc['_rev'],
1259-
'language': 'query',
1260-
'views': {},
1261-
'lists': {},
1262-
'shows': {},
1263-
'indexes': {index.name: {'index': {'index_array_lengths': True,
1264-
'fields': 'all_fields',
1265-
'default_field': {},
1266-
'default_analyzer': 'keyword',
1267-
'selector': {}},
1268-
'analyzer': {'name': 'perfield',
1269-
'default': 'keyword',
1270-
'fields': {'$default': 'standard'}}}}}
1271-
)
1260+
1261+
self.assertEquals(ddoc['language'], 'query')
1262+
self.assertEquals(ddoc['lists'], {})
1263+
self.assertEquals(ddoc['shows'], {})
1264+
self.assertEquals(ddoc['views'], {})
1265+
1266+
index = ddoc['indexes'][index.name]
1267+
self.assertEquals(index['analyzer']['default'], 'keyword')
1268+
self.assertEquals(index['analyzer']['fields'], {'$default': 'standard'})
1269+
self.assertEquals(index['analyzer']['name'], 'perfield')
1270+
self.assertEquals(index['index']['default_analyzer'], 'keyword')
1271+
self.assertEquals(index['index']['default_field'], {})
1272+
self.assertEquals(index['index']['fields'], 'all_fields')
1273+
self.assertEquals(index['index']['selector'], {})
1274+
self.assertTrue(index['index']['index_array_lengths'])
12721275

12731276
def test_create_multiple_indexes_one_ddoc(self):
12741277
"""
12751278
Tests that multiple indexes of different types can be stored in one
12761279
design document.
12771280
"""
1278-
json_index = self.db.create_query_index(
1281+
index = self.db.create_query_index(
12791282
'ddoc001',
12801283
'json-index-001',
12811284
fields=['name', 'age']
12821285
)
1283-
self.assertIsInstance(json_index, Index)
1286+
self.assertIsInstance(index, Index)
12841287
search_index = self.db.create_query_index(
12851288
'ddoc001',
12861289
'text-index-001',
@@ -1289,32 +1292,31 @@ def test_create_multiple_indexes_one_ddoc(self):
12891292
{'name': 'age', 'type':'number'}]
12901293
)
12911294
self.assertIsInstance(search_index, TextIndex)
1295+
12921296
ddoc = self.db['_design/ddoc001']
1297+
1298+
self.assertEquals(ddoc['_id'], index.design_document_id)
12931299
self.assertTrue(ddoc['_rev'].startswith('2-'))
1294-
self.assertEqual(ddoc,
1295-
{'_id': '_design/ddoc001',
1296-
'_rev': ddoc['_rev'],
1297-
'language': 'query',
1298-
'lists': {},
1299-
'shows': {},
1300-
'views': {'json-index-001': {
1301-
'map': {'fields': {'name': 'asc',
1302-
'age': 'asc'}},
1303-
'reduce': '_count',
1304-
'options': {'def': {'fields': ['name',
1305-
'age']},
1306-
}}},
1307-
'indexes': {'text-index-001': {
1308-
'index': {'index_array_lengths': True,
1309-
'fields': [{'name': 'name', 'type': 'string'},
1310-
{'name': 'age', 'type': 'number'}],
1311-
'default_field': {},
1312-
'default_analyzer': 'keyword',
1313-
'selector': {}},
1314-
'analyzer': {'name': 'perfield',
1315-
'default': 'keyword',
1316-
'fields': {'$default': 'standard'}}}}}
1317-
)
1300+
1301+
self.assertEquals(ddoc['language'], 'query')
1302+
self.assertEquals(ddoc['lists'], {})
1303+
self.assertEquals(ddoc['shows'], {})
1304+
1305+
json_index = ddoc['views']['json-index-001']
1306+
self.assertEquals(json_index['map']['fields']['age'], 'asc')
1307+
self.assertEquals(json_index['map']['fields']['name'], 'asc')
1308+
self.assertEquals(json_index['options']['def']['fields'], ['name', 'age'])
1309+
self.assertEquals(json_index['reduce'], '_count')
1310+
1311+
text_index = ddoc['indexes']['text-index-001']
1312+
self.assertEquals(text_index['analyzer']['default'], 'keyword')
1313+
self.assertEquals(text_index['analyzer']['fields']['$default'], 'standard')
1314+
self.assertEquals(text_index['analyzer']['name'], 'perfield')
1315+
self.assertEquals(text_index['index']['default_analyzer'], 'keyword')
1316+
self.assertEquals(text_index['index']['default_field'], {})
1317+
self.assertEquals(text_index['index']['fields'], [{'name': 'name', 'type': 'string'}, {'name': 'age', 'type': 'number'}])
1318+
self.assertEquals(text_index['index']['selector'], {})
1319+
self.assertTrue(text_index['index']['index_array_lengths'])
13181320

13191321
def test_create_query_index_failure(self):
13201322
"""
@@ -1381,28 +1383,32 @@ def test_get_query_indexes_raw(self):
13811383
"""
13821384
self.db.create_query_index('ddoc001', 'json-idx-001', fields=['name', 'age'])
13831385
self.db.create_query_index('ddoc001', 'text-idx-001', 'text')
1384-
self.assertEqual(
1385-
self.db.get_query_indexes(raw_result=True),
1386-
{'indexes': [
1387-
{'ddoc': None,
1388-
'name': '_all_docs',
1389-
'type': 'special',
1390-
'def': {'fields': [{'_id': 'asc'}]}},
1391-
{'ddoc': '_design/ddoc001',
1392-
'name': 'json-idx-001',
1393-
'type': 'json',
1394-
'def': {'fields': [{'name': 'asc'}, {'age': 'asc'}]}},
1395-
{'ddoc': '_design/ddoc001',
1396-
'name': 'text-idx-001',
1397-
'type': 'text',
1398-
'def': {'index_array_lengths': True,
1399-
'fields': [],
1400-
'default_field': {},
1401-
'default_analyzer': 'keyword',
1402-
'selector': {}}}
1403-
],
1404-
'total_rows' : 3}
1405-
)
1386+
1387+
indexes = self.db.get_query_indexes(raw_result=True)
1388+
1389+
self.assertEquals(indexes['total_rows'], 3)
1390+
1391+
all_docs_index = indexes['indexes'][0]
1392+
self.assertEquals(all_docs_index['ddoc'], None)
1393+
self.assertEquals(all_docs_index['def']['fields'], [{'_id': 'asc'}])
1394+
self.assertEquals(all_docs_index['name'], '_all_docs')
1395+
self.assertEquals(all_docs_index['type'], 'special')
1396+
1397+
json_index = indexes['indexes'][1]
1398+
self.assertEquals(json_index['ddoc'], '_design/ddoc001')
1399+
self.assertEquals(json_index['def']['fields'], [{'name': 'asc'}, {'age': 'asc'}])
1400+
self.assertEquals(json_index['name'], 'json-idx-001')
1401+
self.assertEquals(json_index['type'], 'json')
1402+
1403+
text_index = indexes['indexes'][2]
1404+
self.assertEquals(text_index['ddoc'], '_design/ddoc001')
1405+
self.assertEquals(text_index['def']['default_analyzer'], 'keyword')
1406+
self.assertEquals(text_index['def']['default_field'], {})
1407+
self.assertEquals(text_index['def']['fields'], [])
1408+
self.assertEquals(text_index['def']['selector'], {})
1409+
self.assertEquals(text_index['name'], 'text-idx-001')
1410+
self.assertEquals(text_index['type'], 'text')
1411+
self.assertTrue(text_index['def']['index_array_lengths'])
14061412

14071413
def test_get_query_indexes(self):
14081414
"""

0 commit comments

Comments
 (0)