예제 #1
0
def test_loadcomponents(write_metada_file):
    my_component = generate_class(
        "MyComponent",
        METADATA["MyComponent.react.js"]["props"],
        METADATA["MyComponent.react.js"]["description"],
        "default_namespace",
    )

    a_component = generate_class(
        "A",
        METADATA["A.react.js"]["props"],
        METADATA["A.react.js"]["description"],
        "default_namespace",
    )

    c = load_components(METADATA_PATH)

    my_component_kwargs = {
        "foo": "Hello World",
        "bar": "Lah Lah",
        "baz": "Lemons",
        "data-foo": "Blah",
        "aria-bar": "Seven",
        "children": "Child",
    }
    a_kwargs = {"children": "Child", "href": "Hello World"}

    assert isinstance(my_component(**my_component_kwargs), Component)

    assert repr(my_component(**my_component_kwargs)) == repr(
        c[0](**my_component_kwargs))

    assert repr(a_component(**a_kwargs)) == repr(c[1](**a_kwargs))
예제 #2
0
    def setUp(self):
        path = os.path.join(_dir, 'metadata_test.json')
        with open(path) as data_file:
            json_string = data_file.read()
            data = json\
                .JSONDecoder(object_pairs_hook=OrderedDict)\
                .decode(json_string)
            self.data = data

        self.ComponentClass = generate_class(typename='Table',
                                             props=data['props'],
                                             description=data['description'],
                                             namespace='TableComponents')

        path = os.path.join(_dir, 'metadata_required_test.json')
        with open(path) as data_file:
            json_string = data_file.read()
            required_data = json\
                .JSONDecoder(object_pairs_hook=OrderedDict)\
                .decode(json_string)
            self.required_data = required_data

        self.ComponentClassRequired = generate_class(
            typename='TableRequired',
            props=required_data['props'],
            description=required_data['description'],
            namespace='TableComponents')
예제 #3
0
    def setUp(self):
        path = os.path.join('tests', 'development', 'metadata_test.json')
        with open(path) as data_file:
            json_string = data_file.read()
            data = json\
                .JSONDecoder(object_pairs_hook=collections.OrderedDict)\
                .decode(json_string)
            self.data = data

        self.ComponentClass = generate_class(
            typename='Table',
            props=data['props'],
            description=data['description'],
            namespace='TableComponents'
        )

        path = os.path.join(
            'tests', 'development', 'metadata_required_test.json'
        )
        with open(path) as data_file:
            json_string = data_file.read()
            required_data = json\
                .JSONDecoder(object_pairs_hook=collections.OrderedDict)\
                .decode(json_string)
            self.required_data = required_data

        self.ComponentClassRequired = generate_class(
            typename='TableRequired',
            props=required_data['props'],
            description=required_data['description'],
            namespace='TableComponents'
        )
예제 #4
0
    def test_loadcomponents(self):
        MyComponent_runtime = generate_class(
            'MyComponent', METADATA['MyComponent.react.js']['props'],
            METADATA['MyComponent.react.js']['description'],
            'default_namespace')

        A_runtime = generate_class('A', METADATA['A.react.js']['props'],
                                   METADATA['A.react.js']['description'],
                                   'default_namespace')

        generate_classes('default_namespace', METADATA_PATH)
        from default_namespace.MyComponent import MyComponent \
            as MyComponent_buildtime
        from default_namespace.A import A as A_buildtime

        MyComponentKwargs = {
            'foo': 'Hello World',
            'bar': 'Lah Lah',
            'baz': 'Lemons',
            'data-foo': 'Blah',
            'aria-bar': 'Seven',
            'children': 'Child'
        }
        AKwargs = {'children': 'Child', 'href': 'Hello World'}

        self.assertTrue(
            isinstance(MyComponent_buildtime(**MyComponentKwargs), Component))

        self.assertEqual(
            repr(MyComponent_buildtime(**MyComponentKwargs)),
            repr(MyComponent_runtime(**MyComponentKwargs)),
        )

        self.assertEqual(repr(A_runtime(**AKwargs)),
                         repr(A_buildtime(**AKwargs)))
예제 #5
0
    def test_loadcomponents(self):
        MyComponent = generate_class(
            'MyComponent', METADATA['MyComponent.react.js']['props'],
            METADATA['MyComponent.react.js']['description'],
            'default_namespace')

        A = generate_class('A', METADATA['A.react.js']['props'],
                           METADATA['A.react.js']['description'],
                           'default_namespace')

        c = load_components(METADATA_PATH)

        MyComponentKwargs = {
            'foo': 'Hello World',
            'bar': 'Lah Lah',
            'baz': 'Lemons',
            'data-foo': 'Blah',
            'aria-bar': 'Seven',
            'children': 'Child'
        }
        AKwargs = {'children': 'Child', 'href': 'Hello World'}

        self.assertTrue(isinstance(MyComponent(**MyComponentKwargs),
                                   Component))

        self.assertEqual(repr(MyComponent(**MyComponentKwargs)),
                         repr(c[0](**MyComponentKwargs)))

        self.assertEqual(repr(A(**AKwargs)), repr(c[1](**AKwargs)))
예제 #6
0
def generate_components():
    Div = generate_class('Div', (
        'children',
        'id',
    ), 'dash_html_components')
    Span = generate_class('Span', (
        'children',
        'id',
    ), 'dash_html_components')
    Input = generate_class('Input', (
        'children',
        'id',
    ), 'dash_core_components')
    return Div, Span, Input
예제 #7
0
    def test_loadcomponents(self):
        MyComponent_runtime = generate_class(
            'MyComponent',
            METADATA['MyComponent.react.js']['props'],
            METADATA['MyComponent.react.js']['description'],
            'default_namespace'
        )

        A_runtime = generate_class(
            'A',
            METADATA['A.react.js']['props'],
            METADATA['A.react.js']['description'],
            'default_namespace'
        )

        generate_classes('default_namespace', METADATA_PATH)
        from default_namespace.MyComponent import MyComponent \
            as MyComponent_buildtime
        from default_namespace.A import A as A_buildtime

        MyComponentKwargs = {
            'foo': 'Hello World',
            'bar': 'Lah Lah',
            'baz': 'Lemons',
            'data-foo': 'Blah',
            'aria-bar': 'Seven',
            'children': 'Child'
        }
        AKwargs = {
            'children': 'Child',
            'href': 'Hello World'
        }

        self.assertTrue(
            isinstance(
                MyComponent_buildtime(**MyComponentKwargs),
                Component
            )
        )

        self.assertEqual(
            repr(MyComponent_buildtime(**MyComponentKwargs)),
            repr(MyComponent_runtime(**MyComponentKwargs)),
        )

        self.assertEqual(
            repr(A_runtime(**AKwargs)),
            repr(A_buildtime(**AKwargs))
        )
예제 #8
0
def component_class(load_test_metadata_json):
    return generate_class(
        typename="Table",
        props=load_test_metadata_json["props"],
        description=load_test_metadata_json["description"],
        namespace="TableComponents",
    )
예제 #9
0
    def test_loadcomponents(self):
        MyComponent = generate_class(
            'MyComponent',
            METADATA['MyComponent.react.js']['props'],
            METADATA['MyComponent.react.js']['description'],
            'default_namespace'
        )

        A = generate_class(
            'A',
            METADATA['A.react.js']['props'],
            METADATA['A.react.js']['description'],
            'default_namespace'
        )

        c = load_components(METADATA_PATH)

        MyComponentKwargs = {
            'foo': 'Hello World',
            'bar': 'Lah Lah',
            'baz': 'Lemons',
            'data-foo': 'Blah',
            'aria-bar': 'Seven',
            'children': 'Child'
        }
        AKwargs = {
            'children': 'Child',
            'href': 'Hello World'
        }

        self.assertTrue(
            isinstance(MyComponent(**MyComponentKwargs), Component)
        )

        self.assertEqual(
            repr(MyComponent(**MyComponentKwargs)),
            repr(c[0](**MyComponentKwargs))
        )

        self.assertEqual(
            repr(A(**AKwargs)),
            repr(c[1](**AKwargs))
        )
예제 #10
0
def component_written_class():
    path = os.path.join(_dir, "metadata_required_test.json")
    with open(path) as data_file:
        json_string = data_file.read()
        required_data = json.JSONDecoder(
            object_pairs_hook=OrderedDict).decode(json_string)

    return generate_class(
        typename="TableRequired",
        props=required_data["props"],
        description=required_data["description"],
        namespace="TableComponents",
    )
예제 #11
0
def test_loadcomponents_from_generated_class(write_metada_file,
                                             make_namespace):
    my_component_runtime = generate_class(
        "MyComponent",
        METADATA["MyComponent.react.js"]["props"],
        METADATA["MyComponent.react.js"]["description"],
        "default_namespace",
    )

    a_runtime = generate_class(
        "A",
        METADATA["A.react.js"]["props"],
        METADATA["A.react.js"]["description"],
        "default_namespace",
    )

    generate_classes("default_namespace", METADATA_PATH)
    from default_namespace.MyComponent import MyComponent as MyComponent_buildtime
    from default_namespace.A import A as A_buildtime

    my_component_kwargs = {
        "foo": "Hello World",
        "bar": "Lah Lah",
        "baz": "Lemons",
        "data-foo": "Blah",
        "aria-bar": "Seven",
        "children": "Child",
    }
    a_kwargs = {"children": "Child", "href": "Hello World"}

    assert isinstance(MyComponent_buildtime(**my_component_kwargs), Component)

    assert repr(MyComponent_buildtime(**my_component_kwargs)) == repr(
        my_component_runtime(**my_component_kwargs))

    assert repr(a_runtime(**a_kwargs)) == repr(A_buildtime(**a_kwargs))