|
|
import os
|
|
|
import unittest
|
|
|
from rhodecode.tests import *
|
|
|
|
|
|
from rhodecode.model.meta import Session
|
|
|
from rhodecode.tests.fixture import Fixture
|
|
|
from rhodecode.model.repo import RepoModel
|
|
|
from rhodecode.model.db import Repository
|
|
|
from rhodecode.lib.exceptions import AttachedForksError
|
|
|
|
|
|
fixture = Fixture()
|
|
|
|
|
|
|
|
|
class TestRepos(unittest.TestCase):
|
|
|
|
|
|
def setUp(self):
|
|
|
pass
|
|
|
|
|
|
def tearDown(self):
|
|
|
Session.remove()
|
|
|
|
|
|
def test_remove_repo(self):
|
|
|
repo = fixture.create_repo(name='test-repo-1')
|
|
|
Session().commit()
|
|
|
|
|
|
RepoModel().delete(repo=repo)
|
|
|
Session().commit()
|
|
|
|
|
|
self.assertEqual(None, Repository.get_by_repo_name(repo_name='test-repo-1'))
|
|
|
|
|
|
def test_remove_repo_repo_raises_exc_when_attached_forks(self):
|
|
|
repo = fixture.create_repo(name='test-repo-1')
|
|
|
Session().commit()
|
|
|
|
|
|
fixture.create_fork(repo.repo_name, 'test-repo-fork-1')
|
|
|
Session().commit()
|
|
|
|
|
|
self.assertRaises(AttachedForksError, lambda: RepoModel().delete(repo=repo))
|
|
|
|
|
|
def test_remove_repo_delete_forks(self):
|
|
|
repo = fixture.create_repo(name='test-repo-1')
|
|
|
Session().commit()
|
|
|
|
|
|
fork = fixture.create_fork(repo.repo_name, 'test-repo-fork-1')
|
|
|
Session().commit()
|
|
|
|
|
|
#fork of fork
|
|
|
fixture.create_fork(fork.repo_name, 'test-repo-fork-fork-1')
|
|
|
Session().commit()
|
|
|
|
|
|
RepoModel().delete(repo=repo, forks='delete')
|
|
|
Session().commit()
|
|
|
|
|
|
self.assertEqual(None, Repository.get_by_repo_name(repo_name='test-repo-1'))
|
|
|
self.assertEqual(None, Repository.get_by_repo_name(repo_name='test-repo-fork-1'))
|
|
|
self.assertEqual(None, Repository.get_by_repo_name(repo_name='test-repo-fork-fork-1'))
|
|
|
|
|
|
def test_remove_repo_detach_forks(self):
|
|
|
repo = fixture.create_repo(name='test-repo-1')
|
|
|
Session().commit()
|
|
|
|
|
|
fork = fixture.create_fork(repo.repo_name, 'test-repo-fork-1')
|
|
|
Session().commit()
|
|
|
|
|
|
#fork of fork
|
|
|
fixture.create_fork(fork.repo_name, 'test-repo-fork-fork-1')
|
|
|
Session().commit()
|
|
|
|
|
|
RepoModel().delete(repo=repo, forks='detach')
|
|
|
Session().commit()
|
|
|
|
|
|
try:
|
|
|
self.assertEqual(None, Repository.get_by_repo_name(repo_name='test-repo-1'))
|
|
|
self.assertNotEqual(None, Repository.get_by_repo_name(repo_name='test-repo-fork-1'))
|
|
|
self.assertNotEqual(None, Repository.get_by_repo_name(repo_name='test-repo-fork-fork-1'))
|
|
|
finally:
|
|
|
RepoModel().delete(repo='test-repo-fork-fork-1')
|
|
|
RepoModel().delete(repo='test-repo-fork-1')
|
|
|
Session().commit()
|
|
|
|