def test_build_object__if_index_drops__should_return_object( self, left_schema): right_schema = Schema({ 'Document1': Schema.Document( { 'field1': { 'param11': 'schemavalue11', 'param12': 'schemavalue12' }, 'field2': { 'param21': 'schemavalue21', 'param22': 'schemavalue22' }, }, parameters={'collection': 'document1'}, indexes={}), '~EmbeddedDocument2': Schema.Document({ 'field1': { 'param3': 'schemavalue3' }, 'field2': { 'param4': 'schemavalue4' }, }) }) res = DropIndex.build_object('Document1', 'index2', left_schema, right_schema) assert isinstance(res, DropIndex) assert res.document_type == 'Document1' assert res.index_name == 'index2' assert res.parameters == { 'fields': [('field1', pymongo.ASCENDING), ('field2', pymongo.DESCENDING)], 'name': 'index2', 'sparse': True, }
def test_build_object__if_index_does_not_drop_in_schema__should_return_none( self, left_schema, index_name): right_schema = Schema({ 'Document1': Schema.Document( { 'field1': { 'param11': 'schemavalue11', 'param12': 'schemavalue12' }, 'field3': { 'param31': 'schemavalue31', 'param32': 'schemavalue32' }, }, parameters={'collection': 'document1'}, indexes={ 'index3': { 'fields': [('field2', pymongo.DESCENDING)], 'name': 'index3', 'sparse': True }, 'index1': { 'fields': [('field1', pymongo.DESCENDING)] } }), '~EmbeddedDocument2': Schema.Document({ 'field1': { 'param3': 'schemavalue3' }, 'field2': { 'param4': 'schemavalue4' }, }) }) res = DropIndex.build_object('Document1', index_name, left_schema, right_schema) assert res is None
def test_build_object__if_document_not_in_both_schemas__should_return_none( self, left_schema, document_type): right_schema = Schema({ 'Document_new': Schema.Document( { 'field1': { 'param11': 'schemavalue11', 'param12': 'schemavalue12' }, 'field2': { 'param21': 'schemavalue21', 'param22': 'schemavalue22' }, 'field3': { 'param31': 'schemavalue31', 'param32': 'schemavalue32' }, }, parameters={'collection': 'document1'}, indexes={}), '~EmbeddedDocument2': Schema.Document({ 'field1': { 'param3': 'schemavalue3' }, 'field2': { 'param4': 'schemavalue4' }, }) }) res = DropIndex.build_object(document_type, 'index2', left_schema, right_schema) assert res is None