"""Lambda test module.""" from datetime import date from xmlunittest import XmlTestCase import generate class CustomTestCase(XmlTestCase): """Extend XmlTestCase in order to test XML.""" def generate_test_xml(self): """Generate test XML.""" test_transformed_metadata = { 'message_thread_id': 12345, 'message_id': '12345_20200101_000000', 'message_created_date_time': '2020-01-01T00:00:00.100000+00:00', 'message_notification_period_start': date(2020, 1, 1), 'message_notification_period_end': date(2020, 1, 1) } return generate.generate_rdr(test_transformed_metadata) def test_header_nodes(self): """Test that the correct XML nodes are generated.""" root = self.generate_test_xml() self.assertXmlNode(root) # Test that the expected nodes exist self.assertXpathsExist(root, ('./MessageHeader', './MessageHeader/MessageThreadId', './MessageHeader/MessageId', './MessageHeader/MessageSender', './MessageHeader/MessageSender/PartyId', './MessageHeader/MessageSender/PartyName', './MessageHeader/MessageSender/PartyName/FullName', './MessageHeader/MessageSender/TradingName', './MessageHeader/MessageRecipient', './MessageHeader/MessageRecipient/PartyId', './MessageHeader/MessageRecipient/PartyName', './MessageHeader/MessageRecipient/PartyName/FullName', './MessageNotificationPeriod', './MessageNotificationPeriod/StartDate', './MessageNotificationPeriod/EndDate', './MessageHeader/MessageCreatedDateTime', )) # Test that constant values are correct self.assertXpathValues(root, './MessageHeader/MessageSender/PartyId/text()', ('PADPIDA2012041004F')) self.assertXpathValues(root, './MessageHeader/MessageSender/PartyName/FullName/text()', ('The Orchard Enterprises')) self.assertXpathValues(root, './MessageHeader/MessageSender/PartyName/TradingName/text()', ('The Orchard Enterprises, LLC')) def test_namespaces(self): """Test that the correct XML namespaces are present.""" root = self.generate_test_xml() self.assertXmlNamespace(root, None, 'http://ddex.net/xml/mlc/131') self.assertXmlNamespace(root, 'xsi', 'http://www.w3.org/2001/XMLSchema-instance') self.assertXmlNamespace(root, 'xsd', 'http://www.w3.org/2001/XMLSchema') self.assertXmlHasAttribute( root, 'BusinessProfileVersionId', expected_value='SCPP_BusinessProfileVersionId_2017.02.xml') self.assertXmlHasAttribute(root, 'LanguageAndScriptCode', expected_value='en')