##// END OF EJS Templates
When using tags in git use the link to Commit instead of messing with Tag object
When using tags in git use the link to Commit instead of messing with Tag object

File last commit:

r2451:402a96fc beta
r2537:952dd2c9 beta
Show More
test_tags.py
61 lines | 2.0 KiB | text/x-python | PythonLexer
from __future__ import with_statement
from base import BackendTestMixin
from conf import SCM_TESTS
from rhodecode.lib.vcs.exceptions import TagAlreadyExistError
from rhodecode.lib.vcs.exceptions import TagDoesNotExistError
from rhodecode.lib.vcs.utils.compat import unittest
class TagsTestCaseMixin(BackendTestMixin):
def test_new_tag(self):
tip = self.repo.get_changeset()
tagsize = len(self.repo.tags)
tag = self.repo.tag('last-commit', 'joe', tip.raw_id)
self.assertEqual(len(self.repo.tags), tagsize + 1)
for top, dirs, files in tip.walk():
self.assertEqual(top, tag.get_node(top.path))
def test_tag_already_exist(self):
tip = self.repo.get_changeset()
self.repo.tag('last-commit', 'joe', tip.raw_id)
self.assertRaises(TagAlreadyExistError,
self.repo.tag, 'last-commit', 'joe', tip.raw_id)
chset = self.repo.get_changeset(0)
self.assertRaises(TagAlreadyExistError,
self.repo.tag, 'last-commit', 'jane', chset.raw_id)
def test_remove_tag(self):
tip = self.repo.get_changeset()
self.repo.tag('last-commit', 'joe', tip.raw_id)
tagsize = len(self.repo.tags)
self.repo.remove_tag('last-commit', user='evil joe')
self.assertEqual(len(self.repo.tags), tagsize - 1)
def test_remove_tag_which_does_not_exist(self):
self.assertRaises(TagDoesNotExistError,
self.repo.remove_tag, 'last-commit', user='evil joe')
def test_name_with_slash(self):
self.repo.tag('19/10/11', 'joe')
self.assertTrue('19/10/11' in self.repo.tags)
self.repo.tag('11', 'joe')
self.assertTrue('11' in self.repo.tags)
# For each backend create test case class
for alias in SCM_TESTS:
attrs = {
'backend_alias': alias,
}
cls_name = ''.join(('%s tags test' % alias).title().split())
bases = (TagsTestCaseMixin, unittest.TestCase)
globals()[cls_name] = type(cls_name, bases, attrs)
if __name__ == '__main__':
unittest.main()