@@ -93,6 +93,66 @@ def test_20_dump(self):
9393
9494 os .remove (temp_file )
9595
96+ def test_30_dump_no_change (self ):
97+ adx_dict = {
98+ 'HEADER' : {'PROGRAMVERSION' : '1' ,
99+ 'CREATED_TIMESTAMP' : '20231204 100000' ,
100+ },
101+ 'RECORDS' : [{'CALL' : 'XX1XXX' ,
102+ 'QSO_DATE' : '20231204' ,
103+ 'TIME_ON' : '1100' ,
104+ 'QTH' : 'Test'
105+ },
106+ {'CALL' : 'YY1YYY' ,
107+ 'QSO_DATE' : '20231204' ,
108+ 'TIME_ON' : '1200' ,
109+ 'QTH_INTL' : 'Töst' ,
110+ 'APP' :
111+ {
112+ '@PROGRAMID' : 'TESTAPP' ,
113+ '@FIELDNAME' : 'TESTFIELD' ,
114+ '@TYPE' : 'I' ,
115+ '$' : 'Test' ,
116+ },
117+ }]
118+ }
119+ adx_dict_sav = adx_dict .copy ()
120+
121+ adx_expected = '''<?xml version='1.0' encoding='utf-8'?>
122+ <ADX>
123+ <HEADER>
124+ <PROGRAMVERSION>1</PROGRAMVERSION>
125+ <CREATED_TIMESTAMP>20231204 100000</CREATED_TIMESTAMP>
126+ <ADIF_VER>3.1.4</ADIF_VER>
127+ <PROGRAMID>PyADIF-File</PROGRAMID>
128+ </HEADER>
129+ <RECORDS>
130+ <RECORD>
131+ <CALL>XX1XXX</CALL>
132+ <QSO_DATE>20231204</QSO_DATE>
133+ <TIME_ON>1100</TIME_ON>
134+ <QTH>Test</QTH>
135+ </RECORD>
136+ <RECORD>
137+ <CALL>YY1YYY</CALL>
138+ <QSO_DATE>20231204</QSO_DATE>
139+ <TIME_ON>1200</TIME_ON>
140+ <QTH_INTL>Töst</QTH_INTL>
141+ <APP PROGRAMID="TESTAPP" FIELDNAME="TESTFIELD" TYPE="I">Test</APP>
142+ </RECORD>
143+ </RECORDS>
144+ </ADX>
145+ '''
146+
147+ temp_file = get_file_path ('testdata/~test.adx' )
148+ adif_file .adx .dump (temp_file , adx_dict )
149+ self .assertDictEqual (adx_dict_sav , adx_dict )
150+
151+ with open (temp_file , encoding = 'utf-8' ) as af :
152+ self .assertEqual (adx_expected , af .read ())
153+
154+ os .remove (temp_file )
155+
96156
97157if __name__ == '__main__' :
98158 unittest .main ()
0 commit comments