示例#1
0
 def setUp(self):
     super(TestPositionParsing, self).setUp()
     create_basic_categories(self)
     self.context = Context({'category': self.category})
     self.context_for_category_nested = Context(
         {'category': self.category_nested})
     self.position = Position(category=self.category_nested,
                              name='position-name',
                              text='other text')
     self.position.save()
示例#2
0
 def test_validation_passes_for_nonoverlapping_positions(self):
     Position.objects.create(category=self.category,
                             name='position-name',
                             text='some text',
                             active_till=utc_localize(
                                 datetime(2010, 10, 10, 10, 10, 10)))
     p = Position(category=self.category,
                  name='position-name',
                  text='other text',
                  active_from=utc_localize(
                      datetime(2010, 10, 10, 10, 10, 10)))
     p.full_clean()
示例#3
0
 def test_validation_fails_for_globaly_active_positions(self):
     Position.objects.create(category=self.category,
                             name='position-name',
                             text='some text')
     p = Position(category=self.category,
                  name='position-name',
                  text='other text')
     tools.assert_raises(ValidationError, p.full_clean)
示例#4
0
 def test_validation_fails_for_overlapping_positions(self):
     Position.objects.create(category=self.category,
                             name='position-name',
                             text='some text',
                             active_till=utc_localize(datetime(
                                 2010, 10, 10)))
     p = Position(category=self.category,
                  name='position-name',
                  text='other text')
     tools.assert_raises(ValidationError, p.full_clean)
示例#5
0
 def setUp(self):
     super(TestPositionParsing, self).setUp()
     create_basic_categories(self)
     self.context = Context({'category': self.category})
     self.context_for_category_nested = Context({'category': self.category_nested})
     self.position = Position(
         category=self.category_nested,
         name='position-name',
         text='other text'
     )
     self.position.save()
示例#6
0
文件: test_admin.py 项目: ella/ella
 def test_result_of_show_title_for_obj_without_title_attr(self):
     aut = Author(name="Hi!")
     p = Position()
     p.target = aut
     tools.assert_equals(u"Hi! [Author]", self.position_admin.show_title(p))
示例#7
0
文件: test_admin.py 项目: ella/ella
 def test_result_of_show_title_for_obj_with_title_attr(self):
     art = Article(title="Hello")
     p = Position()
     p.target = art
     tools.assert_equals(u"Hello [Article]", self.position_admin.show_title(p))
示例#8
0
class TestPositionParsing(TestCase):

    def setUp(self):
        super(TestPositionParsing, self).setUp()
        create_basic_categories(self)
        self.context = Context({'category': self.category})
        self.context_for_category_nested = Context({'category': self.category_nested})
        self.position = Position(
            category=self.category_nested,
            name='position-name',
            text='other text'
        )
        self.position.save()

    def test_getting_category_for_templatag_from_category_variable(self):
        tools.assert_equals(_get_category_from_pars_var(template.Variable('category'), self.context), self.category)

    def test_raising_exception_for_templatag_if_category_is_not_in_context(self):
        tools.assert_raises(template.VariableDoesNotExist, _get_category_from_pars_var, template.Variable('category'), Context({}))

    def test_getting_category_for_templatag_from_category_tree_path_in_variable(self):
        context = Context({'category': '%s' % (self.category.tree_path)})
        tools.assert_equals(_get_category_from_pars_var(template.Variable('category'), context), self.category)

    def test_raising_exception_for_templatag_if_no_category_for_tree_path_in_variable(self):
        context = Context({'category': '%s' % ("bad_three_path")})
        tools.assert_raises(Category.DoesNotExist, _get_category_from_pars_var, template.Variable('category'), context)

    def test_getting_category_for_templatag_from_category_tree_path(self):
        tools.assert_equals(_get_category_from_pars_var(template.Variable('"%s"' % (self.category.tree_path)), self.context), self.category)
        tools.assert_equals(_get_category_from_pars_var(template.Variable('"%s"' % (self.category_nested.tree_path)), self.context), self.category_nested)

    def test_raising_exception_for_templatag_if_no_category_for_tree_path(self):
        tools.assert_raises(Category.DoesNotExist, _get_category_from_pars_var, template.Variable('"bad_three_path"'), self.context)

    def test_parsing_position_tag(self):
        position_node = _parse_position_tag('position position-name for category'.split(), 'endposition')
        tools.assert_true(isinstance(position_node, PositionNode))
        tools.assert_true(isinstance(position_node.category, template.Variable))
        position_node = _parse_position_tag('position position-name for category nofallback'.split(), 'endposition')
        tools.assert_true(isinstance(position_node, PositionNode))
        tools.assert_true(isinstance(position_node.category, template.Variable))
        position_node = _parse_position_tag('position position-name for category using BOX_TYPE'.split(), 'endposition')
        tools.assert_true(isinstance(position_node, PositionNode))
        tools.assert_true(isinstance(position_node.category, template.Variable))
        position_node = _parse_position_tag('position position-name for category using BOX_TYPE nofallback'.split(), 'endposition')
        tools.assert_true(isinstance(position_node, PositionNode))
        tools.assert_true(isinstance(position_node.category, template.Variable))
        position_node = _parse_position_tag('position "position" for category'.split(), 'endposition')
        tools.assert_true(isinstance(position_node, PositionNode))
        tools.assert_true(isinstance(position_node.category, template.Variable))

    def test_position_templatetag_render_with_category_var(self):
        t = template.Template('{% load positions %}{% position position-name for category %}{% endposition %}')
        tools.assert_equals('other text', t.render(self.context_for_category_nested))

    def test_position_templatetag_render_with_category_tree_path(self):
        t = template.Template('{% load positions %}{% position position-name for "nested-category" %}{% endposition %}')
        tools.assert_equals('other text', t.render(self.context_for_category_nested))

    def test_empty_position_templatetag_render_with_category_var(self):
        t = template.Template('{% load positions %}{% position position-name for category %}{% endposition %}')
        tools.assert_equals('', t.render(self.context))

    def test_empty_position_templatetag_render_with_category_tree_path_if_position_does_not_exist(self):
        t = template.Template('{% load positions %}{% position position-namee for "nested-category" %}{% endposition %}')
        tools.assert_equals('', t.render(self.context))

    def test_raising_exception_position_templatetag_render_with_bad_category_tree_path(self):
        t = template.Template('{% load positions %}{% position position-name for "nested-categoryy" %}{% endposition %}')
        tools.assert_raises(Category.DoesNotExist, t.render, self.context_for_category_nested)

    def test_raising_exception_position_templatetag_render_with_category_not_defined(self):
        t = template.Template('{% load positions %}{% position position-name for category %}{% endposition %}')
        tools.assert_raises(template.VariableDoesNotExist, t.render, Context({}))

    def test_ifposition_templatetag_render_with_category_var(self):
        t = template.Template('{% load positions %}{% ifposition position-name for category %}IN{% else %}OUT{% endifposition %}')
        tools.assert_equals('IN', t.render(self.context_for_category_nested))

    def test_ifposition_templatetag_render_with_category_tree_path(self):
        t = template.Template('{% load positions %}{% ifposition position-name for "nested-category" %}IN{% else %}OUT{% endifposition %}')
        tools.assert_equals('IN', t.render(self.context_for_category_nested))

    def test_not_position_for_ifposition_templatetag_render_with_category_var(self):
        t = template.Template('{% load positions %}{% ifposition position-name for category %}IN{% else %}OUT{% endifposition %}')
        tools.assert_equals('OUT', t.render(self.context))

    def test_raising_exception_for_ifposition_templatetag_render_with_category_var_not_in_context(self):
        t = template.Template('{% load positions %}{% ifposition position-name for category %}IN{% else %}OUT{% endifposition %}')
        tools.assert_raises(template.VariableDoesNotExist, t.render, Context({}))

    def test_raising_exception_ifposition_templatetag_render_with_bad_category_tree_path(self):
        t = template.Template('{% load positions %}{% ifposition position-name for "nested-categoryy" %}IN{% else %}OUT{% endifposition %}')
        tools.assert_raises(Category.DoesNotExist, t.render, self.context)
示例#9
0
 def test_result_of_show_title_for_position_without_trget(self):
     p = Position()
     tools.assert_true(self.position_admin.show_title(p).startswith('--'))
示例#10
0
 def test_result_of_show_title_for_obj_without_title_attr(self):
     aut = Author(name='Hi!')
     p = Position()
     p.target = aut
     tools.assert_equals(u'Hi! [Author]', self.position_admin.show_title(p))
示例#11
0
 def test_result_of_show_title_for_obj_with_title_attr(self):
     art = Article(title='Hello')
     p = Position()
     p.target = art
     tools.assert_equals(u'Hello [Article]', self.position_admin.show_title(p))
示例#12
0
 def test_validation_passes_for_nonoverlapping_positions(self):
     Position.objects.create(category=self.category, name='position-name', text='some text', active_till=utc_localize(datetime(2010, 10, 10, 10, 10, 10)))
     p = Position(category=self.category, name='position-name', text='other text', active_from=utc_localize(datetime(2010, 10, 10, 10, 10, 10)))
     p.full_clean()
示例#13
0
 def test_result_of_show_title_for_obj_without_title_attr(self):
     source = Source.objects.create(name='Hi!')
     p = Position()
     p.target = source
     tools.assert_equals(u'Hi! [Source]', self.position_admin.show_title(p))
示例#14
0
 def test_result_of_show_title_for_obj_with_title_attr(self):
     p = Position()
     p.target = self.publishable
     tools.assert_equals(u'First Article [Article]', self.position_admin.show_title(p))
示例#15
0
 def test_validation_fails_for_incorrect_generic_fk(self):
     p = Position(category=self.category,
                  name='position-name',
                  target_ct=ContentType.objects.get_for_model(Position),
                  target_id=123455)
     tools.assert_raises(ValidationError, p.full_clean)