def test_generate_xml_from_scheme_with_arg_title(self): """Checks that the XML generated by a Scheme object with all its fields set and some arguments added matches what we expect. Also sets the title on an argument.""" scheme = Scheme("abcd") scheme.description = u"쎼 and 쎶 and <&> für" scheme.streaming_mode = Scheme.streaming_mode_simple scheme.use_external_validation = "false" scheme.use_single_instance = "true" arg1 = Argument(name="arg1") scheme.add_argument(arg1) arg2 = Argument(name="arg2", description=u"쎼 and 쎶 and <&> für", validation="is_pos_int('some_name')", data_type=Argument.data_type_number, required_on_edit=True, required_on_create=True, title="Argument for ``test_scheme``") scheme.add_argument(arg2) constructed = scheme.to_xml() expected = ET.parse( data_open("data/scheme_without_defaults_and_argument_title.xml") ).getroot() self.assertEqual("Argument for ``test_scheme``", arg2.title) self.assertTrue(xml_compare(expected, constructed))
def get_scheme(self): scheme = Scheme("NDBC Observations") scheme.description = "Streams observation events from NDBC stations." scheme.use_external_validation = True stations_argument = Argument("stations") stations_argument.title = "Station IDs" stations_argument.data_type = Argument.data_type_string stations_argument.description = "List of station IDs separated by a space" stations_argument.required_on_create = True scheme.add_argument(stations_argument) return scheme
def test_generate_xml_from_argument_with_default_values(self): """Checks that the XML produced from an Argument class that is initialized but has no additional manipulations made to it is what we expect. This is mostly a check of the default values.""" argument = Argument("some_name") root = ET.Element("") constructed = argument.add_to_document(root) expected = ET.parse(data_open("data/argument_with_defaults.xml")).getroot() self.assertTrue(xml_compare(expected, constructed))
def test_generate_xml_from_argument_with_default_values(self): """Checks that the XML produced from an Argument class that is initialized but has no additional manipulations made to it is what we expect. This is mostly a check of the default values.""" argument = Argument("some_name") root = ET.Element("") constructed = argument.add_to_document(root) expected = ET.parse( data_open("data/argument_with_defaults.xml")).getroot() self.assertTrue(xml_compare(expected, constructed))
def _do_scheme(self): scheme = Scheme(self.title) scheme.description = self.description scheme.use_external_validation = self.use_external_validation scheme.streaming_mode = Scheme.streaming_mode_xml scheme.use_single_instance = self.use_single_instance for argument in self.extra_arguments(): name = argument['name'] title = argument.get('title', None) description = argument.get('description', None) validation = argument.get('validation', None) data_type = argument.get('data_type', Argument.data_type_string) required_on_edit = argument.get('required_on_edit', False) required_on_create = argument.get('required_on_create', False) scheme.add_argument( Argument(name, title=title, description=description, validation=validation, data_type=data_type, required_on_edit=required_on_edit, required_on_create=required_on_create)) return ET.tostring(scheme.to_xml())
def _do_scheme(self): scheme = Scheme(self.title) scheme.description = self.description scheme.use_external_validation = self.use_external_validation scheme.streaming_mode = Scheme.streaming_mode_xml scheme.use_single_instance = self.use_single_instance for argument in self.extra_arguments(): name = argument["name"] title = argument.get("title", None) description = argument.get("description", None) validation = argument.get("validation", None) data_type = argument.get("data_type", Argument.data_type_string) required_on_edit = argument.get("required_on_edit", False) required_on_create = argument.get("required_on_create", False) scheme.add_argument( Argument( name, title=title, description=description, validation=validation, data_type=data_type, required_on_edit=required_on_edit, required_on_create=required_on_create, ) ) return ET.tostring(scheme.to_xml(), encoding=SCHEME_ENCODING)
def test_generate_xml_from_argument(self): """Checks that the XML generated by an Argument class with all its possible values set is what we expect.""" argument = Argument(name="some_name", description=u"쎼 and 쎶 and <&> für", validation="is_pos_int('some_name')", data_type=Argument.data_type_boolean, required_on_edit="true", required_on_create="true") root = ET.Element("") constructed = argument.add_to_document(root) expected = ET.parse( data_open("data/argument_without_defaults.xml")).getroot() self.assertTrue(xml_compare(expected, constructed))
def test_generate_xml_from_argument(self): """Checks that the XML generated by an Argument class with all its possible values set is what we expect.""" argument = Argument( name="some_name", description=u"쎼 and 쎶 and <&> für", validation="is_pos_int('some_name')", data_type=Argument.data_type_boolean, required_on_edit="true", required_on_create="true" ) root = ET.Element("") constructed = argument.add_to_document(root) expected = ET.parse(data_open("data/argument_without_defaults.xml")).getroot() self.assertTrue(xml_compare(expected, constructed))
def get_scheme(self): scheme = Scheme("abcd") scheme.description = u"\uC3BC and \uC3B6 and <&> f\u00FCr" scheme.streaming_mode = scheme.streaming_mode_simple scheme.use_external_validation = False scheme.use_single_instance = True arg1 = Argument("arg1") scheme.add_argument(arg1) arg2 = Argument("arg2") arg2.description = u"\uC3BC and \uC3B6 and <&> f\u00FCr" arg2.data_type = Argument.data_type_number arg2.required_on_create = True arg2.required_on_edit = True arg2.validation = "is_pos_int('some_name')" scheme.add_argument(arg2) return scheme
def _build_scheme(title, use_single_instance, **kwargs): scheme = Scheme(title) scheme.description = kwargs.pop('description', None) scheme.use_external_validation = True scheme.streaming_mode = Scheme.streaming_mode_xml scheme.use_single_instance = use_single_instance for name, options in list(kwargs.pop('arguments', {}).items()): description = options.pop('description', None) validation = options.pop('validation', None) data_type = options.pop('data_type', Argument.data_type_string) required_on_edit = options.pop('required_on_edit', False) required_on_create = options.pop('required_on_create', False) title = options.pop('title', None) argument = Argument( name, description, validation, data_type, required_on_edit, required_on_create, title ) scheme.add_argument(argument) return scheme
def get_scheme(self): scheme = Scheme("NDBC Observations Search") scheme.description = "Streams observation events from nearby NDBC stations." scheme.use_external_validation = True latitude_argument = Argument("latitude") latitude_argument.title = "Latitude" latitude_argument.data_type = Argument.data_type_number latitude_argument.description = "Latitude of the center of the search area" latitude_argument.required_on_create = True scheme.add_argument(latitude_argument) longitude_argument = Argument("longitude") longitude_argument.title = "Longitude" longitude_argument.data_type = Argument.data_type_number longitude_argument.description = "Longitude of the center of the search area" longitude_argument.required_on_create = True scheme.add_argument(longitude_argument) radius_argument = Argument("radius") radius_argument.title = "Radius" radius_argument.data_type = Argument.data_type_number radius_argument.description = "Radius in miles of the search area" radius_argument.required_on_create = True scheme.add_argument(radius_argument) return scheme