@@ -720,6 +720,45 @@ def test__build_xml_doc_with_sub_docs(self):
720
720
self .assertEqual (children_docs [0 ].find ("*[@name='id']" ).text , sub_docs [0 ]["id" ])
721
721
self .assertEqual (children_docs [1 ].find ("*[@name='id']" ).text , sub_docs [1 ]["id" ])
722
722
723
+ def test__build_xml_doc_with_empty_values (self ):
724
+ doc = {
725
+ "id" : "doc_1" ,
726
+ "title" : "" ,
727
+ "price" : None ,
728
+ "tags" : [],
729
+ }
730
+ doc_xml = force_unicode (
731
+ ElementTree .tostring (self .solr ._build_xml_doc (doc ), encoding = "utf-8" )
732
+ )
733
+ self .assertNotIn ('<field name="title" />' , doc_xml )
734
+ self .assertNotIn ('<field name="price" />' , doc_xml )
735
+ self .assertNotIn ('<field name="tags" />' , doc_xml )
736
+ self .assertIn ('<field name="id">doc_1</field>' , doc_xml )
737
+ self .assertEqual (len (doc_xml ), 41 )
738
+
739
+ def test__build_xml_doc_with_empty_values_and_field_updates (self ):
740
+ doc = {
741
+ "id" : "doc_1" ,
742
+ "title" : "" ,
743
+ "price" : None ,
744
+ "tags" : [],
745
+ }
746
+ fieldUpdates = {
747
+ "title" : "set" ,
748
+ "tags" : "set" ,
749
+ }
750
+ doc_xml = force_unicode (
751
+ ElementTree .tostring (
752
+ self .solr ._build_xml_doc (doc , fieldUpdates = fieldUpdates ),
753
+ encoding = "utf-8" ,
754
+ )
755
+ )
756
+ self .assertIn ('<field name="title" null="true" update="set" />' , doc_xml )
757
+ self .assertNotIn ('<field name="price" />' , doc_xml )
758
+ self .assertIn ('<field name="tags" null="true" update="set" />' , doc_xml )
759
+ self .assertIn ('<field name="id">doc_1</field>' , doc_xml )
760
+ self .assertEqual (len (doc_xml ), 134 )
761
+
723
762
def test_build_json_doc_matches_xml (self ):
724
763
doc = {
725
764
"id" : "doc_1" ,
0 commit comments