class Ops(xsd.ComplexType): INHERITANCE = None INDICATOR = xsd.Sequence aircraft = xsd.Element(xsd.String) flight_number = xsd.Element(xsd.String) type = xsd.Element(xsd.String(enumeration=[ "COMMERCIAL", "INCOMPLETE", "ENGINE_RUN_UP", "TEST", "TRAINING", "FERRY", "POSITIONING", "LINE_TRAINING" ])) takeoff_airport = xsd.Element(Airport) takeoff_gate_datetime = xsd.Element(xsd.DateTime, minOccurs=0) takeoff_datetime = xsd.Element(xsd.DateTime) takeoff_fuel = xsd.Element(Weight, minOccurs=0) takeoff_gross_weight = xsd.Element(Weight, minOccurs=0) takeoff_pilot = xsd.Element(Pilot, minOccurs=0) landing_airport = xsd.Element(Airport) landing_gate_datetime = xsd.Element(xsd.DateTime, minOccurs=0) landing_datetime = xsd.Element(xsd.DateTime) landing_fuel = xsd.Element(Weight, minOccurs=0) landing_pilot = xsd.Element(Pilot, minOccurs=0) destination_airport = xsd.Element(Airport, minOccurs=0) captain_code = xsd.Element(xsd.String, minOccurs=0) first_officer_code = xsd.Element(xsd.String, minOccurs=0) V2 = xsd.Element(xsd.Integer, minOccurs=0) Vref = xsd.Element(xsd.Integer, minOccurs=0) Vapp = xsd.Element(xsd.Integer, minOccurs=0)
def test_can_check_for_restrictions_before_accepting_values(self): xsd_string = xsd.String(enumeration=('10', '20', '30'), pattern='1.') self.assertEqual('10', xsd_string.accept('10')) with self.assertRaises(ValueError): xsd_string.accept('15') with self.assertRaises(ValueError): xsd_string.accept('20')
def test_can_restrict_acceptable_values_with_length_range(self): self.xsd_type = xsd.String(minLength=2, maxLength=4) self.assert_can_not_set('1') self.assert_can_set('12') self.assert_can_set('123') self.assert_can_set('1234') self.assert_can_not_set('12345')
class RequestResponse(xsd.ComplexType): INHERITANCE = None INDICATOR = xsd.Sequence declar_number = xsd.Element(xsd.String) register_date = xsd.Element(xsd.Date) result = xsd.Element( xsd.String( enumeration=['ACCEPTED', 'INTERMEDIATE', 'INFO', 'ERROR', 'FINAL' ])) text = xsd.Element(xsd.String, minOccurs=0) AppliedDocument = xsd.ListElement(AppliedDocument, tagname='AppliedDocument', minOccurs=0, maxOccurs=xsd.UNBOUNDED) @classmethod def create(cls, declar_number, register_date, result): instance = cls() instance.declar_number = declar_number instance.register_date = register_date instance.result = result return instance def __str__(self): return "Номер дела: %s\nДата регистрации: %s\nРезультат: %s\n" \ "Ответ: %s" % (self.declar_number, self.register_date, self.result, self.text)
def test_string_element(self): tail_number = xsd.Element(xsd.String()) xmlelement = etree.Element("aircraft") tail_number.render(xmlelement, "tail_number", "LN-KKU") self.assertEqual(b"""<aircraft> <tail_number>LN-KKU</tail_number> </aircraft> """, etree.tostring(xmlelement, pretty_print=True))
def test_string_element(self): tail_number = xsd.Element(xsd.String()) xmlelement = etree.Element('aircraft') tail_number.render(xmlelement, 'tail_number', 'LN-KKU') self.assertEqual( b'''<aircraft> <tail_number>LN-KKU</tail_number> </aircraft> ''', etree.tostring(xmlelement, pretty_print=True))
class Airport(xsd.ComplexType): INHERITANCE = None INDICATOR = xsd.Sequence code_type = xsd.Element(xsd.String(enumeration=["ICAO", "IATA", "FAA"])) code = xsd.Element(xsd.String) @classmethod def create(cls, code_type, code): instance = cls() instance.code_type = code_type instance.code = code return instance
class Status(xsd.ComplexType): INHERITANCE = None INDICATOR = xsd.Sequence action = xsd.Element(xsd.String(enumeration=['INSERTED', 'UPDATED', 'EXISTS'])) id = xsd.Element(xsd.Long) @classmethod def create(cls, action, id): instance = cls() instance.action = action instance.id = id return instance
class Weight(xsd.ComplexType): INHERITANCE = None INDICATOR = xsd.Sequence value = xsd.Element(xsd.Integer) unit = xsd.Element(xsd.String(enumeration=["kg", "lb"])) @classmethod def create(cls, value, unit): instance = cls() instance.value = value instance.unit = unit return instance
class Ops(xsd.ComplexType): INHERITANCE = None INDICATOR = xsd.Sequence aircraft = xsd.Element(xsd.String) flight_number = xsd.Element(xsd.String) type = xsd.Element( xsd.String(enumeration=[ 'COMMERCIAL', 'INCOMPLETE', 'ENGINE_RUN_UP', 'TEST', 'TRAINING', 'FERRY', 'POSITIONING', 'LINE_TRAINING' ], )) takeoff_airport = xsd.Element('Airport') takeoff_gate_datetime = xsd.Element(xsd.DateTime, minOccurs=0) takeoff_datetime = xsd.Element(xsd.DateTime) takeoff_fuel = xsd.Element('Weight', minOccurs=0) takeoff_gross_weight = xsd.Element('Weight', minOccurs=0) takeoff_pilot = xsd.Element('Pilot', minOccurs=0) landing_airport = xsd.Element('Airport') landing_gate_datetime = xsd.Element(xsd.DateTime, minOccurs=0) landing_datetime = xsd.Element(xsd.DateTime) landing_fuel = xsd.Element('Weight', minOccurs=0) landing_pilot = xsd.Element('Pilot', minOccurs=0) destination_airport = xsd.Element('Airport', minOccurs=0) captain_code = xsd.Element(xsd.String, minOccurs=0) first_officer_code = xsd.Element(xsd.String, minOccurs=0) V2 = xsd.Element(xsd.Integer, minOccurs=0) Vref = xsd.Element(xsd.Integer, minOccurs=0) Vapp = xsd.Element(xsd.Integer, minOccurs=0) @classmethod def create(cls, aircraft, flight_number, type, takeoff_airport, takeoff_datetime, landing_airport, landing_datetime): instance = cls() instance.aircraft = aircraft instance.flight_number = flight_number instance.type = type instance.takeoff_airport = takeoff_airport instance.takeoff_datetime = takeoff_datetime instance.landing_airport = landing_airport instance.landing_datetime = landing_datetime return instance
def test_restriction_whitespace_replace(self): xsd_string = xsd.String(whiteSpace='replace') expected = value = 'line 1 line 2' value = xsd_string.accept(value) assert_equals(expected, value)
def test_can_check_for_restrictions_before_accepting_values(self): xsd_string = xsd.String(enumeration=('10', '20', '30'), pattern='1.') assert_equals('10', xsd_string.accept('10')) assert_raises(ValueError, lambda: xsd_string.accept('15')) assert_raises(ValueError, lambda: xsd_string.accept('20'))
def test_can_restrict_acceptable_values_with_length(self): self.xsd_type = xsd.String(length=4) self.assert_can_set('1234') self.assert_can_not_set('12345')
def test_can_restrict_acceptable_values_with_pattern(self): self.xsd_type = xsd.String(pattern='1.') self.assert_can_set('12') self.assert_can_set('1a') self.assert_can_not_set('ab') self.assert_can_not_set('123')
class Airport(xsd.ComplexType): INHERITANCE = None INDICATOR = xsd.Sequence code_type = xsd.Element(xsd.String(enumeration=["ICAO", "IATA", "FAA"])) code = xsd.Element(xsd.String)
class Airport(xsd.ComplexType): INHERITANCE = None INDICATOR = xsd.Sequence code_type = xsd.Element(xsd.String(enumeration=['ICAO', 'IATA', 'FAA'])) code = xsd.Element(xsd.String)
class Test(xsd.ComplexType): value = xsd.Element(xsd.String(pattern=r'^a*$'))
def test_restriction_whitespace_collapse(self): xsd_string = xsd.String(whiteSpace='collapse') value = 'line 1\n \tline 2' expected = 'line 1 line 2' value = xsd_string.accept(value) assert_equals(expected, value)
def test_apply_whitespace_restriction_before_validation(self): self.xsd_type = xsd.String(minLength=4, whiteSpace='collapse') self.assert_can_not_set('1\n \t 2') self.assert_can_set('1\n \t 23')
class Weight(xsd.ComplexType): INHERITANCE = None INDICATOR = xsd.Sequence value = xsd.Element(xsd.Integer) unit = xsd.Element(xsd.String(enumeration=["kg", "lb"]))
class Container(xsd.ComplexType): code = xsd.Element(xsd.String(pattern='[0-9]{0,5}'))
def test_restriction_whitespace_preserve(self): xsd_string = xsd.String(whiteSpace='preserve') expected = value = 'line 1\n \tline 2' value = xsd_string.accept(value) self.assertEqual(expected, value)
class Status(xsd.ComplexType): INHERITANCE = None INDICATOR = xsd.Sequence action = xsd.Element(xsd.String(enumeration=["INSERTED", "UPDATED", "EXISTS"])) id = xsd.Element(xsd.Long)
def test_restriction_whitespace_preserve(self): xsd_string = xsd.String(whiteSpace="preserve") expected = value = 'line 1\n \tline 2' value = xsd_string.accept(value) assert_equals(expected, value)