コード例 #1
0
    def test_update_should_keep_pinned_tags(self):
        content = create_testcontent()
        self.set_tags(content, """
<tag uuid="uid-karenduve">Karen Duve</tag>""")
        tagger = Tagger(content)
        tagger.set_pinned([u'☃Karen Duve'])
        tagger.update()
        self.assertEqual([u'☃Karen Duve'], list(tagger))
コード例 #2
0
    def test_update_should_keep_pinned_tags(self):
        content = create_testcontent()
        self.set_tags(content, """
<tag uuid="uid-karenduve">Karen Duve</tag>""")
        tagger = Tagger(content)
        tagger.set_pinned([u'☃Karen Duve'])
        tagger.update()
        self.assertEqual([u'☃Karen Duve'], list(tagger))
コード例 #3
0
    def test_set_pinned_should_update_tab_separated_property(self):
        content = create_testcontent()
        self.set_tags(content, """
<tag uuid="uid-karenduve">Karen Duve</tag>
<tag uuid="uid-berlin">Berlin</tag>
""")
        tagger = Tagger(content)
        tagger.set_pinned([u'☃Berlin', u'☃Karen Duve'])
        self.assertEqual((u'☃Berlin', u'☃Karen Duve'), tagger.pinned)

        dav = zeit.connector.interfaces.IWebDAVProperties(content)
        dav_key = ('pinned', 'http://namespaces.zeit.de/CMS/tagging')
        self.assertEqual(u'☃Berlin\t☃Karen Duve', dav[dav_key])

        self.assertTrue(tagger[u'☃Berlin'].pinned)
コード例 #4
0
    def test_set_pinned_should_update_tab_separated_property(self):
        content = create_testcontent()
        self.set_tags(
            content, """
<tag uuid="uid-karenduve">Karen Duve</tag>
<tag uuid="uid-berlin">Berlin</tag>
""")
        tagger = Tagger(content)
        tagger.set_pinned([u'☃Berlin', u'☃Karen Duve'])
        self.assertEqual((u'☃Berlin', u'☃Karen Duve'), tagger.pinned)

        dav = zeit.connector.interfaces.IWebDAVProperties(content)
        dav_key = ('pinned', 'http://namespaces.zeit.de/CMS/tagging')
        self.assertEqual(u'☃Berlin\t☃Karen Duve', dav[dav_key])

        self.assertTrue(tagger[u'☃Berlin'].pinned)
コード例 #5
0
 def test_update_should_not_duplicate_pinned_tags(self):
     # this is a rather tricky edge case:
     # when we pin a manual tag first, and then also pin a tag that
     # comes in via update() again, we used to screw it up,
     # since we compared against a generator multiple times
     extract_keywords = 'zeit.retresco.connection.TMS.extract_keywords'
     with mock.patch(extract_keywords) as extract_keywords:
         extract_keywords.return_value = [Tag('Foo', ''), Tag('Bar', '')]
         content = create_testcontent()
         tagger = Tagger(content)
         tagger.update()
         self.assertEqual(2, len(tagger))
         tagger[u'☃Qux'] = Tag('Qux', '')
         tagger.set_pinned([u'☃Qux', u'☃Foo'])
         tagger.update()
         self.assertEqual([u'Foo', u'Bar', u'Qux'],
                          [tagger[x].label.strip() for x in tagger])
コード例 #6
0
 def test_update_should_not_duplicate_pinned_tags(self):
     # this is a rather tricky edge case:
     # when we pin a manual tag first, and then also pin a tag that
     # comes in via update() again, we used to screw it up,
     # since we compared against a generator multiple times
     extract_keywords = 'zeit.retresco.connection.TMS.extract_keywords'
     with mock.patch(extract_keywords) as extract_keywords:
         extract_keywords.return_value = [
             Tag('Foo', ''), Tag('Bar', '')]
         content = create_testcontent()
         tagger = Tagger(content)
         tagger.update()
         self.assertEqual(2, len(tagger))
         tagger[u'☃Qux'] = Tag('Qux', '')
         tagger.set_pinned([u'☃Qux', u'☃Foo'])
         tagger.update()
         self.assertEqual(
             [u'Foo', u'Bar', u'Qux'],
             [tagger[x].label.strip() for x in tagger])
コード例 #7
0
 def test_tags_retrieved_via_values_remain_pinned(self):
     content = create_testcontent()
     self.set_tags(content, """<tag uuid="uid-berlin">Berlin</tag>""")
     tagger = Tagger(content)
     tagger.set_pinned([u'☃Berlin'])
     self.assertEqual(True, next(tagger.values()).pinned)
コード例 #8
0
 def test_tags_retrieved_via_values_remain_pinned(self):
     content = create_testcontent()
     self.set_tags(content, """<tag uuid="uid-berlin">Berlin</tag>""")
     tagger = Tagger(content)
     tagger.set_pinned([u'☃Berlin'])
     self.assertEqual(True, next(tagger.values()).pinned)