|
21 | 21 | module docstring. |
22 | 22 |
|
23 | 23 | """ |
| 24 | +import os |
24 | 25 | import unittest |
25 | 26 |
|
26 | 27 | from cloudant.document import Document |
@@ -681,15 +682,55 @@ def test_get_view(self): |
681 | 682 |
|
682 | 683 | def test_get_info(self): |
683 | 684 | """ |
684 | | - Test that the appropriate "not implemented" exception is raised |
685 | | - when attempting to execute the .info() method |
| 685 | + Test retrieval of info endpoint from the DesignDocument. |
686 | 686 | """ |
687 | 687 | ddoc = DesignDocument(self.db, '_design/ddoc001') |
688 | | - try: |
689 | | - ddoc.info() |
690 | | - self.fail('Above statement should raise an Exception') |
691 | | - except NotImplementedError as err: |
692 | | - self.assertEqual(str(err), '_info not yet implemented') |
| 688 | + ddoc.save() |
| 689 | + ddoc_remote = DesignDocument(self.db, '_design/ddoc001') |
| 690 | + ddoc_remote.fetch() |
| 691 | + info = ddoc_remote.info() |
| 692 | + info['view_index'].pop('signature') |
| 693 | + info['view_index'].pop('disk_size') |
| 694 | + # Remove Cloudant specific sizes object |
| 695 | + if 'sizes' in info['view_index']: |
| 696 | + info['view_index'].pop('sizes') |
| 697 | + name = ddoc_remote['_id'] |
| 698 | + else: |
| 699 | + name = 'ddoc001' |
| 700 | + self.assertEqual( |
| 701 | + info, |
| 702 | + {'view_index': {'update_seq': 0, 'waiting_clients': 0, |
| 703 | + 'language': 'javascript', |
| 704 | + 'purge_seq': 0, 'compact_running': False, |
| 705 | + 'waiting_commit': False, 'updater_running': False, |
| 706 | + 'data_size': 0}, 'name': name}) |
| 707 | + |
| 708 | + @unittest.skipUnless( |
| 709 | + os.environ.get('RUN_CLOUDANT_TESTS') is not None, |
| 710 | + 'Skipping Cloudant _search_info endpoint test' |
| 711 | + ) |
| 712 | + def test_get_search_info(self): |
| 713 | + """ |
| 714 | + Test retrieval of search_info endpoint from the DesignDocument. |
| 715 | + """ |
| 716 | + self.populate_db_with_documents(100) |
| 717 | + ddoc = DesignDocument(self.db, '_design/ddoc001') |
| 718 | + ddoc.add_search_index( |
| 719 | + 'search001', |
| 720 | + 'function (doc) {\n index("default", doc._id); ' |
| 721 | + 'if (doc._id) {index("name", doc.name, {"store": true}); }\n}' |
| 722 | + ) |
| 723 | + ddoc.save() |
| 724 | + ddoc_remote = DesignDocument(self.db, '_design/ddoc001') |
| 725 | + ddoc_remote.fetch() |
| 726 | + search_info = ddoc_remote.search_info('search001') |
| 727 | + search_info['search_index'].pop('disk_size') |
| 728 | + self.assertEqual( |
| 729 | + search_info, |
| 730 | + {'name': '_design/ddoc001/search001', |
| 731 | + 'search_index': {'doc_del_count': 0, 'doc_count': 100, |
| 732 | + 'pending_seq': 101, 'committed_seq': 0}, |
| 733 | + }) |
693 | 734 |
|
694 | 735 | def test_add_a_search_index(self): |
695 | 736 | """ |
|
0 commit comments