Пример #1
0
    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))
Пример #2
0
 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
Пример #3
0
    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))
Пример #4
0
    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))
Пример #5
0
    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())
Пример #6
0
    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)
Пример #7
0
    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))
Пример #8
0
    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
Пример #10
0
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
Пример #11
0
            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
Пример #12
0
 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
Пример #13
0
 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