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)
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;')
def test_location_internal(): config = ''' location / { internal; } ''' directive = _get_parsed(config) assert_is_instance(directive, LocationBlock) assert_true(directive.is_internal)
def test_location_modifier(): config = ''' location = / { } ''' directive = _get_parsed(config) assert_is_instance(directive, LocationBlock) assert_equals(directive.modifier, '=') assert_equals(directive.path, '/')
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')
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)
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')
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)
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;')
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')
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)
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')
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')
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)
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')
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)
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)
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)
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)
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'])