Exemplo n.º 1
0
    def test_circular_inject_params_to_self(self):

        content = "a.a = ${param:a.a}"

        with self.assertRaises(CircularInjectError):
            inject_params(content, params={
                'a.a': '${param:a.a}',
            })
Exemplo n.º 2
0
    def test_inject_param(self):

        content = "a = ${param:a}"

        self.assertEqual(
            inject_params(content, params={
                'a': 'TEST'
            }),
            "a = TEST"
        )
Exemplo n.º 3
0
    def test_inject_params_to_self_component(self):

        content = (
            "db.host = ${param:db.host}, "
            "db.default.host = ${param:db.host}"
        )

        self.assertEqual(
            inject_params(content, params={
                'db.host': 'localhost',
                'db.default.host': '${param:db.host}',
            }),
            "db.host = localhost, db.default.host = localhost"
        )
Exemplo n.º 4
0
    def test_inject_params_to_each_other(self):

        content = (
            "a.a = ${param:a.a}, a.b = ${param:a.b}, "
            "b.a = ${param:b.a}, b.b = ${param:b.b}"
        )

        self.assertEqual(
            inject_params(content, params={
                'a.a': 'AA',
                'a.b': '${param:b.b}',
                'b.a': '${param:a.b}',
                'b.b': 'BB',
            }),
            'a.a = AA, a.b = BB, b.a = BB, b.b = BB'
        )
Exemplo n.º 5
0
    def test_inject_params(self):

        content = (
            "a.b.c = ${param:a.b.c}, b.c = ${param:b.c}, "
            "c.d.e = ${param:c.d.e}"
        )

        self.assertEqual(
            inject_params(content, params={
                'a.b.c': 'ABC',
                'b.c': '${param:a.b.c}:BC',
                'c.d': 'CD',
                'c.d.e': '${param:b.c}:${param:c.d}',
            }),
            "a.b.c = ABC, b.c = ABC:BC, c.d.e = ABC:BC:CD"
        )
Exemplo n.º 6
0
def get_settings(config: Config = None,
                 environment: Environment = None,
                 user: User = None,
                 flatten: bool = False,
                 secure: bool = False,
                 inject: bool = False,
                 raw: bool = False) -> Union[str, OrderedDict]:

    if config:
        data = config.settings
        environment = config.environment
    else:
        data = get_all_settings(environment=environment, user=user)

    # Secure settings values
    if secure:
        data = cleanse_dict(d=data,
                            hidden=global_settings['cleansed_hidden'],
                            substitute=global_settings['cleansed_substitute'])

    # Flatten settings keys
    if flatten:
        data = flatten_dict(data)

    # Dump as json string
    json_content = json_dumps(obj=data, indent=global_settings['indent'])

    # Inject global settings values
    if inject:
        params = get_all_settings(environment)
        json_content = inject_params(
            content=json_content,
            params=flatten_dict(params),
            raise_exception=global_settings['inject_validation'])

    # Return as string
    if raw:
        return json_content

    # Return as dict
    return json_loads(json_content)