Clean up, remove compat with py < 3.6
[pyi2ncommon] / src / test_data_sync.py
CommitLineData
11cbb815
PD
1# The software in this package is distributed under the GNU General
2# Public License version 2 (with a special exception described below).
3#
4# A copy of GNU General Public License (GPL) is included in this distribution,
5# in the file COPYING.GPL.
6#
7# As a special exception, if other files instantiate templates or use macros
8# or inline functions from this file, or you compile this file and link it
9# with other works to produce a work based on this file, this file
10# does not by itself cause the resulting work to be covered
11# by the GNU General Public License.
12#
13# However the source code for this file must still be made available
14# in accordance with section (3) of the GNU General Public License.
15#
16# This exception does not invalidate any other reasons why a work based
17# on this file might be covered by the GNU General Public License.
18#
19# Copyright (c) 2016-2018 Intra2net AG <info@intra2net.com>
20
f49f6323
PD
21"""
22
23SUMMARY
24------------------------------------------------------
25Utility to customize email and other test data.
26
27Copyright: Intra2net AG
28
29
30INTERFACE
31------------------------------------------------------
32
33"""
34
35import os
36import re
37import logging
3de8b4d8 38log = logging.getLogger('pyi2ncommon.test_data_sync')
f49f6323
PD
39
40
41def append_email_id_header(data_dir):
42 """
43 Use to append unique autotest id header to emails.
44
45 :param str data_dir: directory containing the emails
46 """
47 email_id = 10000
48 files = []
49 for main_dir, _, files in os.walk(data_dir):
50 for i in range(len(files)):
51 file_path = os.path.join(main_dir, files[i])
52 if i % 100 == 0:
53 log.info("%i done\n", i)
54
7628bc48 55 if not re.match(r"^\d+\.$", files[i]):
f49f6323
PD
56 continue
57 if os.path.getsize(file_path) == 0:
58 log.warning("Skipping empty file %s", file_path)
59 continue
60
61 log.info("Adding header to email %s", file_path)
62 id_line = ""
63 message_file = open(file_path, "r")
64 for line in message_file:
65 if re.match("^Message-Id:", line, re.IGNORECASE):
66 id_line = line
67 message_file.close()
68 break
69
70 readed = open(file_path, "r").read()
71 autotest_id_line = "Autotest-Message-ID: <" + str(email_id + i) + ".63D49232CC@gwt-intranator.m.i2n>\r\n"
72 if id_line == "":
73 final = autotest_id_line + readed
74 else:
75 final = readed.replace(id_line, autotest_id_line)
76 log.info("%s >> %s", id_line, autotest_id_line)
77 open(file_path, "w").write(final)
78 log.info("%i mails replaced.", len(files))