Exemplo n.º 1
0
    def test_update_tags_handles_type_changes_for_existing_tag(self):
        # Given
        tags = [
            TagInfo(name='completed', type='bool'),
            TagInfo(name='foo', type='string')
        ]

        p = Project(name='test', path=self.root, tags=tags)
        p.scan()
        key = 'root.txt'
        m = p.get(key)
        m.tags['completed'] = True
        m.tags['foo'] = 'hello world'

        # When
        new_tags = [
            TagInfo(name='foo', type='int'),
            TagInfo(name='completed', type='bool')
        ]
        p.update_tags(new_tags)

        # Then
        self.assertEqual(p.tags, new_tags)
        self.assertEqual(m.tags['completed'], True)
        self.assertEqual(m.tags['foo'], 0)
        for key in p.keys():
            m = p.get(key)
            self.assertEqual(type(m.tags['completed']), bool)
            self.assertEqual(m.tags['foo'], 0)
Exemplo n.º 2
0
    def test_update_tags_works_without_scan(self):
        # Given
        p = Project(name='test', path=self.root)
        # When
        new_tags = [TagInfo(name='foo', type='string')]
        p.update_tags(new_tags)

        # Then
        self.assertEqual(p.tags, new_tags)
        self.assertEqual(sorted(x.name for x in new_tags),
                         sorted(p._tag_data.keys()))
Exemplo n.º 3
0
    def test_update_tags_updates_existing_media(self):
        # Given
        p = Project(name='test', path=self.root)
        p.scan()
        # When
        new_tags = [TagInfo(name='foo', type='string')]
        p.update_tags(new_tags)

        # Then
        self.assertEqual(p.tags, new_tags)
        for key in p.keys():
            m = p.get(key)
            self.assertEqual(m.tags['foo'], '')
            self.assertTrue('completed' not in m.tags)