Skip to content

Commit 893cf37

Browse files
committed
Add parser tests and rework parser for Colt
1 parent 0b9495a commit 893cf37

File tree

9 files changed

+40
-11
lines changed

9 files changed

+40
-11
lines changed

circuit_maintenance_parser/parsers/colt.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,21 @@ def parse_subject(self, subject):
4444
"""
4545
data = {}
4646
search = re.search(
47-
r"\[.+\](.+).+?(CRQ\w+-\w+)\s(\d+/\d+/\d+\s\d+:\d+:\d+\s+[A-Z]+).+?(\d+/\d+/\d+\s\d+:\d+:\d+\s+[A-Z]+).+?([A-Z]+)",
47+
r"\[.+\]\s([A-Za-z\s]+).+?(CRQ\w+-\w+)\s(\d+/\d+/\d+\s\d+:\d+:\d+\s+[A-Z]+).+?(\d+/\d+/\d+\s\d+:\d+:\d+\s+[A-Z]+).+?([A-Z]+)",
4848
subject,
4949
)
5050
if search:
5151
data["maintenance_id"] = search.group(2)
5252
data["start"] = self.dt2ts(parser.parse(search.group(3)))
5353
data["end"] = self.dt2ts(parser.parse(search.group(4)))
54-
if search.group(5) == "START":
54+
status = search.group(5).strip()
55+
if status == "START":
5556
data["status"] = Status("IN-PROCESS")
56-
elif search.group(5) == "COMPLETED":
57+
elif status == "COMPLETED":
5758
data["status"] = Status("COMPLETED")
5859
else:
5960
data["status"] = Status("CONFIRMED")
60-
data["summary"] = subject
61+
data["summary"] = search.group(1).strip()
6162
return [data]
6263

6364

@@ -84,5 +85,5 @@ def parse_subject(self, subject):
8485
data["maintenance_id"] = search.group(3)
8586
data["start"] = self.dt2ts(parser.parse(search.group(4)))
8687
data["end"] = self.dt2ts(parser.parse(search.group(5)))
87-
data["summary"] = subject
88+
data["summary"] = search.group(2).strip()
8889
return [data]

tests/unit/data/colt/colt1_result.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
"stamp": 1627653788,
88
"start": 1628283600,
99
"status": "CONFIRMED",
10-
"summary": "[ EXTERNAL ] Colt Service Affecting Maintenance Notification - CRQ1-12345678 [06/8/2021 22:00:00 GMT - 07/8/2021 06:00:00 GMT] for ACME, 12345000"
10+
"summary": "Service Affecting Maintenance Notification"
1111
}
1212
]

tests/unit/data/colt/colt3_result.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@
1313
"stamp": 1630760572,
1414
"start": 1623189600,
1515
"status": "CONFIRMED",
16-
"summary": "[ EXTERNAL ] Colt Service Affecting Maintenance Notification - CRQ1-12345678 [06/8/2021 22:00:00 GMT - 07/8/2021 06:00:00 GMT] for ACME, 12345000"
16+
"summary": "Service Affecting Maintenance Notification"
1717
}
1818
]

tests/unit/data/colt/colt4.eml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
MIME-Version: 1.0
22
Date: Mon, 1 Nov 2021 11:51:41 +0000
3-
Subject: [ EXTERNAL ] MAINTENANCE ALERT: CRQ1-12345678 31/10/2021 00:00:00 GMT - 31/10/2021 07:30:00 GMT - COMPLETED
43
From: Maintenance Request <[email protected]>
54
To: Maintenance Request <[email protected]>
65
Content-Type: multipart/mixed; boundary="000000000000e8c2b105cfb8cc38"
6+
Subject: [ EXTERNAL ] MAINTENANCE ALERT: CRQ1-12345678 31/10/2021 00:00:00 GMT - 31/10/2021 07:30:00 GMT - COMPLETED
77

88
--000000000000e8c2b105cfb8cc38
99
Content-Type: multipart/alternative; boundary="000000000000e8c2ae05cfb8cc36"

tests/unit/data/colt/colt4_result.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@
1313
"stamp": 1635767501,
1414
"start": 1635638400,
1515
"status": "COMPLETED",
16-
"summary": "[ EXTERNAL ] MAINTENANCE ALERT: CRQ1-12345678 31/10/2021 00:00:00 GMT - 31/10/2021 07:30:00 GMT - COMPLETED"
16+
"summary": "MAINTENANCE ALERT"
1717
}
1818
]
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[
2+
{
3+
"end": 1635665400,
4+
"maintenance_id": "CRQ1-12345678",
5+
"start": 1635638400,
6+
"status": "COMPLETED",
7+
"summary": "MAINTENANCE ALERT"
8+
}
9+
]

tests/unit/data/colt/colt5_result.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@
1313
"stamp": 1637790229,
1414
"start": 1626130800,
1515
"status": "CANCELLED",
16-
"summary": "[ EXTERNAL ] Cancellation Colt Third Party Maintenance Notification - CRQ1-12345678 [07/12/2021 23:00:00 GMT - 08/12/2021 05:00:00 GMT] for ACME, 123456"
16+
"summary": "Colt Third Party Maintenance Notification"
1717
}
1818
]
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[
2+
{
3+
"end": 1628744400,
4+
"maintenance_id": "CRQ1-12345678",
5+
"start": 1626130800,
6+
"status": "CANCELLED",
7+
"summary": "Colt Third Party Maintenance Notification"
8+
}
9+
]

tests/unit/test_parsers.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from circuit_maintenance_parser.parsers.aws import SubjectParserAWS1, TextParserAWS1
1212

1313
from circuit_maintenance_parser.parsers.cogent import HtmlParserCogent1
14-
from circuit_maintenance_parser.parsers.colt import CsvParserColt1
14+
from circuit_maintenance_parser.parsers.colt import CsvParserColt1, SubjectParserColt1, SubjectParserColt2
1515
from circuit_maintenance_parser.parsers.equinix import HtmlParserEquinix, SubjectParserEquinix
1616
from circuit_maintenance_parser.parsers.gtt import HtmlParserGTT1
1717
from circuit_maintenance_parser.parsers.hgc import HtmlParserHGC1, HtmlParserHGC2
@@ -92,6 +92,16 @@
9292
Path(dir_path, "data", "colt", "colt2.csv"),
9393
Path(dir_path, "data", "colt", "colt2_result.json"),
9494
),
95+
(
96+
SubjectParserColt1,
97+
Path(dir_path, "data", "colt", "colt4.eml"),
98+
Path(dir_path, "data", "colt", "colt4_subject_parser_1_result.json"),
99+
),
100+
(
101+
SubjectParserColt2,
102+
Path(dir_path, "data", "colt", "colt5.eml"),
103+
Path(dir_path, "data", "colt", "colt5_subject_parser_2_result.json"),
104+
),
95105
# Equinix
96106
(
97107
HtmlParserEquinix,

0 commit comments

Comments
 (0)