コード例 #1
0
ファイル: test_registration.py プロジェクト: stjordanis/textX
def test_register_generator():
    """
    Test both style of generator registration.
    """

    clear_generator_registrations()
    register_generator('test-lang',
                       target='Java',
                       description='test-lang Java generator',
                       generator=generator_callable)

    generator = generator_description('test-lang', 'java')

    assert type(generator) is GeneratorDesc
    assert generator.language == 'test-lang'
    assert generator.target == 'Java'
    assert generator.description == 'test-lang Java generator'
    assert generator.generator == generator_callable

    clear_generator_registrations()
    register_generator(GeneratorDesc('test-lang',
                                     target='Java',
                                     description='test-lang Java generator',
                                     generator=generator_callable))

    generator = generator_description('test-lang', 'java')

    assert type(generator) is GeneratorDesc
    assert generator.language == 'test-lang'
    assert generator.target == 'Java'
    assert generator.description == 'test-lang Java generator'
    assert generator.generator == generator_callable
コード例 #2
0
ファイル: test_registration.py プロジェクト: stjordanis/textX
def test_declaratively_registered_generator_always_available():
    """
    Declaratively registered generators will be re-registered at the first API
    call.
    """
    clear_generator_registrations()
    generator = generator_description('flow-dsl', 'plantuml')

    assert generator.language == 'flow-dsl'
    assert generator.target == 'PlantUML'
    assert callable(generator.generator)
    assert generator.project_name == 'flow-codegen'
コード例 #3
0
ファイル: test_registration.py プロジェクト: stjordanis/textX
def test_register_already_existing_generator():
    """
    Test that trying to register a generator with the language name and target
    already registered will raise `TextXRegistrationError`.
    """

    clear_generator_registrations()
    register_generator('test-lang',
                       target='Java',
                       description='test-lang Java generator',
                       generator=generator_callable)

    with pytest.raises(TextXRegistrationError, match='.*already registered.*'):
        register_generator('test-lang',
                           target='Java',
                           description='test-lang Java generator',
                           generator=generator_callable)