Пример #1
0
def test_block():
    config = 'some {some;}'

    directive = _get_parsed(config)
    assert_is_instance(directive, Block)
    assert_true(directive.is_block)
    assert_true(directive.self_context)
    assert_false(directive.provide_variables)
Пример #2
0
def test_directive():
    config = 'some "foo" "bar";'

    directive = _get_parsed(config)
    assert_is_instance(directive, Directive)
    assert_equals(directive.name, 'some')
    assert_equals(directive.args, ['foo', 'bar'])
    assert_equals(str(directive), 'some foo bar;')
Пример #3
0
def test_location_internal():
    config = '''
location / {
    internal;
}
    '''

    directive = _get_parsed(config)
    assert_is_instance(directive, LocationBlock)
    assert_true(directive.is_internal)
Пример #4
0
def test_location_modifier():
    config = '''
location = / {
}
    '''

    directive = _get_parsed(config)
    assert_is_instance(directive, LocationBlock)
    assert_equals(directive.modifier, '=')
    assert_equals(directive.path, '/')
Пример #5
0
def test_if_variable():
    config = '''
if ($http_some = '/some') {
}
    '''

    directive = _get_parsed(config)
    assert_is_instance(directive, IfBlock)
    assert_equals(directive.variable, '$http_some')
    assert_equals(directive.operand, '=')
    assert_equals(directive.value, '/some')
Пример #6
0
def test_if_modifier():
    config = '''
if (-f /some) {
}
    '''

    directive = _get_parsed(config)
    assert_is_instance(directive, IfBlock)
    assert_equals(directive.operand, '-f')
    assert_equals(directive.value, '/some')
    assert_is_none(directive.variable)
Пример #7
0
def test_root():
    config = 'root /var/www/html;'

    directive = _get_parsed(config)
    assert_is_instance(directive, RootDirective)
    assert_equals(directive.name, 'root')
    assert_equals(directive.args, ['/var/www/html'])
    assert_equals(str(directive), 'root /var/www/html;')
    assert_true(directive.provide_variables)

    assert_equals(directive.path, '/var/www/html')
Пример #8
0
def test_set():
    config = 'set $foo bar;'

    directive = _get_parsed(config)
    assert_is_instance(directive, SetDirective)
    assert_equals(directive.name, 'set')
    assert_equals(directive.args, ['$foo', 'bar'])
    assert_equals(directive.variable, 'foo')
    assert_equals(directive.value, 'bar')
    assert_equals(str(directive), 'set $foo bar;')
    assert_true(directive.provide_variables)
Пример #9
0
def test_add_header_always():
    config = 'add_header "X-Foo" "bar" always;'

    directive = _get_parsed(config)
    assert_is_instance(directive, AddHeaderDirective)
    assert_equals(directive.name, 'add_header')
    assert_equals(directive.args, ['X-Foo', 'bar', 'always'])
    assert_equals(directive.header, 'x-foo')
    assert_equals(directive.value, 'bar')
    assert_true(directive.always)
    assert_equals(str(directive), 'add_header X-Foo bar always;')
Пример #10
0
def test_rewrite_flags():
    config = 'rewrite ^/(.*)$ http://some/$1 redirect;'

    directive = _get_parsed(config)
    assert_is_instance(directive, RewriteDirective)
    assert_equals(directive.name, 'rewrite')
    assert_equals(directive.args, ['^/(.*)$', 'http://some/$1', 'redirect'])
    assert_equals(str(directive), 'rewrite ^/(.*)$ http://some/$1 redirect;')
    assert_true(directive.provide_variables)

    assert_equals(directive.pattern, '^/(.*)$')
    assert_equals(directive.replace, 'http://some/$1')
    assert_equals(directive.flag, 'redirect')
Пример #11
0
def test_rewrite():
    config = 'rewrite ^ http://some;'

    directive = _get_parsed(config)
    assert_is_instance(directive, RewriteDirective)
    assert_equals(directive.name, 'rewrite')
    assert_equals(directive.args, ['^', 'http://some'])
    assert_equals(str(directive), 'rewrite ^ http://some;')
    assert_true(directive.provide_variables)

    assert_equals(directive.pattern, '^')
    assert_equals(directive.replace, 'http://some')
    assert_equals(directive.flag, None)
Пример #12
0
def test_block_map():
    config = '''
map $some_var $some_other_var {
    a   b;
    default c;
}
    '''

    directive = _get_parsed(config)
    assert_is_instance(directive, MapBlock)
    assert_true(directive.is_block)
    assert_false(directive.self_context)
    assert_true(directive.provide_variables)
    assert_equals(directive.variable, 'some_other_var')
Пример #13
0
def test_block_geo_one_var():
    config = '''
geo $some_var {
    5.6.7.8 d;
    default e;
}
    '''

    directive = _get_parsed(config)
    assert_is_instance(directive, GeoBlock)
    assert_true(directive.is_block)
    assert_false(directive.self_context)
    assert_true(directive.provide_variables)
    assert_equals(directive.variable, 'some_var')
Пример #14
0
def test_if():
    config = '''
if ($some) {
}
    '''

    directive = _get_parsed(config)
    assert_is_instance(directive, IfBlock)
    assert_true(directive.is_block)
    assert_false(directive.self_context)
    assert_false(directive.provide_variables)
    assert_equals(directive.variable, '$some')
    assert_is_none(directive.operand)
    assert_is_none(directive.value)
Пример #15
0
def test_block_geo_two_vars():
    config = '''
geo $some_var $some_other_var {
    1.2.3.4 b;
    default c;
}
    '''

    directive = _get_parsed(config)
    assert_is_instance(directive, GeoBlock)
    assert_true(directive.is_block)
    assert_false(directive.self_context)
    assert_true(directive.provide_variables)
    assert_equals(directive.variable, 'some_other_var')
Пример #16
0
def test_http():
    config = '''
http {
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
}
    '''

    directive = _get_parsed(config)
    assert_is_instance(directive, HttpBlock)
    assert_true(directive.is_block)
    assert_true(directive.self_context)
    assert_false(directive.provide_variables)
Пример #17
0
def test_location():
    config = '''
location / {
}
    '''

    directive = _get_parsed(config)
    assert_is_instance(directive, LocationBlock)
    assert_true(directive.is_block)
    assert_true(directive.self_context)
    assert_true(directive.provide_variables)
    assert_is_none(directive.modifier)
    assert_equals(directive.path, '/')
    assert_false(directive.is_internal)
Пример #18
0
def test_server():
    config = '''
server {
    listen 80;
    server_name _;
    server_name cool.io;
}

    '''

    directive = _get_parsed(config)
    assert_is_instance(directive, ServerBlock)
    assert_true(directive.is_block)
    assert_true(directive.self_context)
    assert_equals([d.args[0] for d in directive.get_names()], ['_', 'cool.io'])
    assert_false(directive.provide_variables)
Пример #19
0
def assert_config(config, expected):
    tree = _parse(config)
    assert_is_instance(tree, Directive)
    assert_is_instance(tree, Block)
    assert_is_instance(tree, Root)

    child = tree.children[0]
    for ex in expected:
        assert_is_instance(child, ex)
Пример #20
0
def test_dump_simple():
    config = '''
# configuration file /etc/nginx/nginx.conf:
http {
    include sites/*.conf;
}

# configuration file /etc/nginx/conf.d/listen:
listen 80;

# configuration file /etc/nginx/sites/default.conf:
server {
    include conf.d/listen;
}
    '''

    tree = _parse(config)
    assert_is_instance(tree, Directive)
    assert_is_instance(tree, Block)
    assert_is_instance(tree, Root)

    assert_equal(len(tree.children), 1)
    http = tree.children[0]
    assert_is_instance(http, Directive)
    assert_is_instance(http, Block)
    assert_is_instance(http, HttpBlock)

    assert_equal(len(http.children), 1)
    include_server = http.children[0]
    assert_is_instance(include_server, Directive)
    assert_is_instance(include_server, IncludeBlock)
    assert_equal(include_server.file_path, '/etc/nginx/sites/default.conf')

    assert_equal(len(include_server.children), 1)
    server = include_server.children[0]
    assert_is_instance(server, Directive)
    assert_is_instance(server, Block)
    assert_is_instance(server, ServerBlock)

    assert_equal(len(server.children), 1)
    include_listen = server.children[0]
    assert_is_instance(include_listen, Directive)
    assert_is_instance(include_listen, IncludeBlock)
    assert_equal(include_listen.file_path, '/etc/nginx/conf.d/listen')

    assert_equal(len(include_listen.children), 1)
    listen = include_listen.children[0]
    assert_is_instance(listen, Directive)
    assert_equal(listen.args, ['80'])