123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- from nose.tools import assert_true, assert_false, assert_equals, with_setup
- from gixy.core.context import get_context, push_context, purge_context
- from gixy.directives.block import Root
- from gixy.core.regexp import Regexp
- from gixy.core.variable import Variable
- def setup():
- push_context(Root())
- def tear_down():
- purge_context()
- @with_setup(setup, tear_down)
- def test_literal():
- var = Variable(name='simple', value='$uri', have_script=False)
- assert_false(var.depends)
- assert_false(var.regexp)
- assert_equals(var.value, '$uri')
- assert_false(var.can_startswith('$'))
- assert_false(var.can_contain('i'))
- assert_true(var.must_contain('$'))
- assert_true(var.must_contain('u'))
- assert_false(var.must_contain('a'))
- assert_true(var.must_startswith('$'))
- assert_false(var.must_startswith('u'))
- @with_setup(setup, tear_down)
- def test_regexp():
- var = Variable(name='simple', value=Regexp('^/.*'))
- assert_false(var.depends)
- assert_true(var.regexp)
- assert_true(var.can_startswith('/'))
- assert_false(var.can_startswith('a'))
- assert_true(var.can_contain('a'))
- assert_false(var.can_contain('\n'))
- assert_true(var.must_contain('/'))
- assert_false(var.must_contain('a'))
- assert_true(var.must_startswith('/'))
- assert_false(var.must_startswith('a'))
- @with_setup(setup, tear_down)
- def test_script():
- get_context().add_var('foo', Variable(name='foo', value=Regexp('.*')))
- var = Variable(name='simple', value='/$foo')
- assert_true(var.depends)
- assert_false(var.regexp)
- assert_false(var.can_startswith('/'))
- assert_false(var.can_startswith('a'))
- assert_true(var.can_contain('/'))
- assert_true(var.can_contain('a'))
- assert_false(var.can_contain('\n'))
- assert_true(var.must_contain('/'))
- assert_false(var.must_contain('a'))
- assert_true(var.must_startswith('/'))
- assert_false(var.must_startswith('a'))
- @with_setup(setup, tear_down)
- def test_regexp_boundary():
- var = Variable(name='simple', value=Regexp('.*'), boundary=Regexp('/[a-z]', strict=True))
- assert_false(var.depends)
- assert_true(var.regexp)
- assert_true(var.can_startswith('/'))
- assert_false(var.can_startswith('a'))
- assert_false(var.can_contain('/'))
- assert_true(var.can_contain('a'))
- assert_false(var.can_contain('0'))
- assert_false(var.can_contain('\n'))
- assert_true(var.must_contain('/'))
- assert_false(var.must_contain('a'))
- assert_true(var.must_startswith('/'))
- assert_false(var.must_startswith('a'))
- @with_setup(setup, tear_down)
- def test_script_boundary():
- get_context().add_var('foo', Variable(name='foo', value=Regexp('.*'), boundary=Regexp('[a-z]', strict=True)))
- var = Variable(name='simple', value='/$foo', boundary=Regexp('[/a-z0-9]', strict=True))
- assert_true(var.depends)
- assert_false(var.regexp)
- assert_false(var.can_startswith('/'))
- assert_false(var.can_startswith('a'))
- assert_false(var.can_contain('/'))
- assert_true(var.can_contain('a'))
- assert_false(var.can_contain('\n'))
- assert_false(var.can_contain('0'))
- assert_true(var.must_contain('/'))
- assert_false(var.must_contain('a'))
- assert_true(var.must_startswith('/'))
- assert_false(var.must_startswith('a'))
|