<s> import json <EOL> from elasticsearch_dsl import mapping , String , Nested , analysis <EOL> def test_mapping_can_has_fields ( ) : <EOL> m = mapping . Mapping ( '<STR_LIT>' ) <EOL> m . field ( '<STR_LIT:name>' , '<STR_LIT:string>' ) . field ( '<STR_LIT>' , '<STR_LIT:string>' , index = '<STR_LIT>' ) <EOL> assert { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:name>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:index>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT:string>' } <EOL> } <EOL> } <EOL> } == m . to_dict ( ) <EOL> def test_mapping_update_is_recursive ( ) : <EOL> m1 = mapping . Mapping ( '<STR_LIT>' ) <EOL> m1 . field ( '<STR_LIT:title>' , '<STR_LIT:string>' ) <EOL> m1 . field ( '<STR_LIT>' , '<STR_LIT:object>' ) <EOL> m1 [ '<STR_LIT>' ] . field ( '<STR_LIT:name>' , '<STR_LIT:string>' ) <EOL> m1 . meta ( '<STR_LIT>' , enabled = False ) <EOL> m1 . meta ( '<STR_LIT>' , False ) <EOL> m2 = mapping . Mapping ( '<STR_LIT>' ) <EOL> m2 . field ( '<STR_LIT>' , '<STR_LIT:date>' ) <EOL> m2 . field ( '<STR_LIT>' , '<STR_LIT:object>' ) <EOL> m2 . field ( '<STR_LIT:title>' , '<STR_LIT:string>' ) <EOL> m2 . field ( '<STR_LIT>' , '<STR_LIT:string>' , index = '<STR_LIT>' ) <EOL> m2 . meta ( '<STR_LIT>' , path = '<STR_LIT>' ) <EOL> m2 [ '<STR_LIT>' ] . field ( '<STR_LIT:email>' , '<STR_LIT:string>' ) <EOL> m1 . update ( m2 , update_only = True ) <EOL> assert { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : False } , <EOL> '<STR_LIT>' : { '<STR_LIT:path>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:date>' } , <EOL> '<STR_LIT:title>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' , '<STR_LIT:index>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:type>' : '<STR_LIT:object>' , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:name>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT:email>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> } <EOL> } <EOL> } <EOL> } <EOL> } == m1 . to_dict ( ) <EOL> def test_properties_can_iterate_over_all_the_fields ( ) : <EOL> m = mapping . Mapping ( '<STR_LIT>' ) <EOL> m . field ( '<STR_LIT>' , '<STR_LIT:string>' , test_attr = '<STR_LIT>' , fields = { '<STR_LIT>' : String ( test_attr = '<STR_LIT>' ) } ) <EOL> m . field ( '<STR_LIT>' , Nested ( test_attr = '<STR_LIT>' , properties = { <EOL> '<STR_LIT>' : String ( test_attr = '<STR_LIT>' ) } ) ) <EOL> assert set ( ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) == set ( f . test_attr for f in m . properties . _collect_fields ( ) ) <EOL> def test_mapping_can_collect_all_analyzers ( ) : <EOL> a1 = analysis . analyzer ( '<STR_LIT>' , <EOL> tokenizer = '<STR_LIT>' , <EOL> filter = [ '<STR_LIT>' , analysis . token_filter ( '<STR_LIT>' , '<STR_LIT>' , stopwords = [ '<STR_LIT:a>' , '<STR_LIT:b>' ] ) ] , <EOL> ) <EOL> a2 = analysis . analyzer ( '<STR_LIT>' ) <EOL> a3 = analysis . analyzer ( '<STR_LIT>' ) <EOL> a4 = analysis . analyzer ( '<STR_LIT>' , <EOL> tokenizer = analysis . tokenizer ( '<STR_LIT>' , '<STR_LIT>' , min_gram = <NUM_LIT:3> , max_gram = <NUM_LIT:3> ) , <EOL> filter = [ analysis . token_filter ( '<STR_LIT>' , '<STR_LIT>' , stopwords = [ '<STR_LIT:c>' , '<STR_LIT:d>' ] ) ] , <EOL> ) <EOL> a5 = analysis . analyzer ( '<STR_LIT>' , tokenizer = '<STR_LIT>' ) <EOL> m = mapping . Mapping ( '<STR_LIT>' ) <EOL> m . field ( '<STR_LIT:title>' , '<STR_LIT:string>' , analyzer = a1 , <EOL> fields = { <EOL> '<STR_LIT>' : String ( index_analyzer = a2 ) , <EOL> '<STR_LIT>' : String ( search_analyzer = a3 ) , <EOL> } <EOL> ) <EOL> m . field ( '<STR_LIT>' , Nested ( properties = { <EOL> '<STR_LIT>' : String ( index_analyzer = a4 ) <EOL> } ) ) <EOL> m . meta ( '<STR_LIT>' , analyzer = a5 ) <EOL> assert { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : [ '<STR_LIT>' ] , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : [ '<STR_LIT:a>' , '<STR_LIT:b>' ] , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : [ '<STR_LIT:c>' , '<STR_LIT:d>' ] , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : <NUM_LIT:3> , '<STR_LIT>' : <NUM_LIT:3> , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> } <EOL> } == m . _collect_analysis ( ) <EOL> assert json . loads ( json . dumps ( m . to_dict ( ) ) ) == m . to_dict ( ) <EOL> def test_mapping_can_collect_multiple_analyzers ( ) : <EOL> a1 = analysis . analyzer ( <EOL> '<STR_LIT>' , <EOL> tokenizer = '<STR_LIT>' , <EOL> filter = [ '<STR_LIT>' , analysis . token_filter ( '<STR_LIT>' , '<STR_LIT>' , stopwords = [ '<STR_LIT:a>' , '<STR_LIT:b>' ] ) ] , <EOL> ) <EOL> a2 = analysis . analyzer ( <EOL> '<STR_LIT>' , <EOL> tokenizer = analysis . tokenizer ( '<STR_LIT>' , '<STR_LIT>' , min_gram = <NUM_LIT:3> , max_gram = <NUM_LIT:3> ) , <EOL> filter = [ analysis . token_filter ( '<STR_LIT>' , '<STR_LIT>' , stopwords = [ '<STR_LIT:c>' , '<STR_LIT:d>' ] ) ] , <EOL> ) <EOL> m = mapping . Mapping ( '<STR_LIT>' ) <EOL> m . field ( '<STR_LIT:title>' , '<STR_LIT:string>' , analyzer = a1 , index_analyzer = a1 , search_analyzer = a2 ) <EOL> m . field ( <EOL> '<STR_LIT:text>' , '<STR_LIT:string>' , analyzer = a1 , <EOL> fields = { <EOL> '<STR_LIT>' : String ( index_analyzer = a1 ) , <EOL> '<STR_LIT>' : String ( index_analyzer = a1 , search_analyzer = a2 ) , <EOL> } <EOL> ) <EOL> assert { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' } } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : [ '<STR_LIT:a>' , '<STR_LIT:b>' ] , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : [ '<STR_LIT:c>' , '<STR_LIT:d>' ] , '<STR_LIT:type>' : '<STR_LIT>' } } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { '<STR_LIT>' : <NUM_LIT:3> , '<STR_LIT>' : <NUM_LIT:3> , '<STR_LIT:type>' : '<STR_LIT>' } } <EOL> } == m . _collect_analysis ( ) <EOL> def test_even_non_custom_analyzers_can_have_params ( ) : <EOL> a1 = analysis . analyzer ( '<STR_LIT>' , type = '<STR_LIT>' , pattern = r'<STR_LIT>' ) <EOL> m = mapping . Mapping ( '<STR_LIT>' ) <EOL> m . field ( '<STR_LIT:title>' , '<STR_LIT:string>' , analyzer = a1 ) <EOL> assert { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT:type>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : r"<STR_LIT>" <EOL> } <EOL> } <EOL> } == m . _collect_analysis ( ) </s>
