Exheredludis/python/repository_TEST.py
2011-06-16 19:22:00 +01:00

191 lines
7.5 KiB
Python
Executable File

#!/usr/bin/env python
# vim: set fileencoding=utf-8 sw=4 sts=4 et :
#
# Copyright (c) 2007 Piotr JaroszyƄski
#
# This file is part of the Paludis package manager. Paludis is free software;
# you can redistribute it and/or modify it under the terms of the GNU General
# Public License version 2, as published by the Free Software Foundation.
#
# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA
#
import os
repo_path = os.path.join(os.getcwd(), "repository_TEST_dir/testrepo")
os.environ["PALUDIS_HOME"] = os.path.join(os.getcwd(), "repository_TEST_dir/home")
from paludis import *
# To check for QA easily
import paludis
import unittest
Log.instance.log_level = LogLevel.WARNING
class TestCase_01_Repository(unittest.TestCase):
def setUp(self):
global e, repo, irepo
e = EnvironmentFactory.instance.create("")
repo = e.fetch_repository("testrepo")
irepo = e.fetch_repository("installed")
def test_01_fetch(self):
self.assert_(isinstance(repo, Repository))
self.assert_(isinstance(irepo, Repository))
def test_02_create_error(self):
self.assertRaises(Exception, Repository)
def test_03_name(self):
self.assertEquals(str(repo.name), "testrepo")
self.assertEquals(str(irepo.name), "installed")
def test_05_has_category_named(self):
self.assert_(repo.has_category_named("foo", []))
self.assert_(not repo.has_category_named("bar", []))
def test_06_has_package_named(self):
self.assert_(repo.has_package_named("foo/bar", []))
self.assert_(not repo.has_package_named("foo/foo", []))
self.assert_(not repo.has_package_named("bar/foo", []))
def test_07_package_ids(self):
y = list(x.version for x in repo.package_ids("foo/bar", []));
y.sort()
z = [VersionSpec("1.0"), VersionSpec("2.0")]
self.assertEquals(y, z)
self.assertEquals(len(list(repo.package_ids("bar/baz", []))), 0)
def test_08_category_names(self):
self.assertEquals([str(x) for x in repo.category_names([])], ["foo", "foo1", "foo2", "foo3", "foo4"])
def test_09_category_names_containing_package(self):
self.assertEquals([str(x) for x in repo.category_names_containing_package("bar", [])],
["foo", "foo1", "foo2", "foo3", "foo4"])
def test_10_package_names(self):
for (i, qpn) in enumerate(repo.package_names("bar", [])):
self.assertEquals(i, 0)
self.assertEquals(str(qpn), "foo/bar")
def test_11_some_ids_might_support_action(self):
self.assert_(repo.some_ids_might_support_action(SupportsFetchActionTest()))
self.assert_(not irepo.some_ids_might_support_action(SupportsFetchActionTest()))
self.assert_(repo.some_ids_might_support_action(SupportsInstallActionTest()))
self.assert_(not irepo.some_ids_might_support_action(SupportsInstallActionTest()))
self.assert_(not repo.some_ids_might_support_action(SupportsUninstallActionTest()))
self.assert_(irepo.some_ids_might_support_action(SupportsUninstallActionTest()))
self.assert_(repo.some_ids_might_support_action(SupportsPretendActionTest()))
self.assert_(not irepo.some_ids_might_support_action(SupportsPretendActionTest()))
self.assert_(not repo.some_ids_might_support_action(SupportsConfigActionTest()))
self.assert_(irepo.some_ids_might_support_action(SupportsConfigActionTest()))
def test_12_keys(self):
self.assert_(repo.location_key())
self.assertEquals(repo.location_key().parse_value(), repo_path)
self.assert_(repo.find_metadata("format"))
self.assertEquals(repo.find_metadata("format").parse_value(), "e")
self.assert_(not repo.find_metadata("asdf"))
class TestCase_02_RepositoryInterfaces(unittest.TestCase):
def setUp(self):
global e, repo, irepo
e = EnvironmentFactory.instance.create("")
repo = e.fetch_repository("testrepo")
irepo = e.fetch_repository("installed")
def test_06_environment_variable_interface(self):
evi = repo.environment_variable_interface
self.assert_(isinstance(evi, RepositoryEnvironmentVariableInterface))
def test_10_destination_interface(self):
di = irepo.destination_interface
self.assert_(isinstance(di, RepositoryDestinationInterface))
class TestCase_03_FakeRepository(unittest.TestCase):
def setUp(self):
global e, f
e = EnvironmentFactory.instance.create("")
f = FakeRepository(e, "fake")
def test_01_init(self):
pass
self.assertEquals(str(f.name), "fake")
def test_02_init_bad(self):
self.assertRaises(Exception, FakeRepository, e)
self.assertRaises(Exception, FakeRepository, "foo", "foo")
def test_03_add_category(self):
self.assertEquals(list(f.category_names([])), [])
f.add_category("cat-foo")
self.assertEquals([str(x) for x in f.category_names([])], ["cat-foo"])
f.add_category("cat-foo")
self.assertEquals([str(x) for x in f.category_names([])], ["cat-foo"])
f.add_category("cat-bar")
self.assertEquals([str(x) for x in f.category_names([])], ["cat-bar", "cat-foo"])
def test_04_add_category_bad(self):
self.assertRaises(Exception, f.add_category, 1)
self.assertRaises(Exception, f.add_category, "a", "b")
def test_05_add_package(self):
foo_1 = QualifiedPackageName("cat-foo/pkg1")
foo_2 = QualifiedPackageName("cat-foo/pkg2")
bar_1 = QualifiedPackageName("cat-bar/pkg1")
f.add_category("cat-foo")
self.assertEquals(list(f.package_names("cat-foo", [])), [])
f.add_package(foo_1)
self.assertEquals(list(f.package_names("cat-foo", [])), [foo_1])
f.add_package(foo_1)
self.assertEquals(list(f.package_names("cat-foo", [])), [foo_1])
f.add_package(foo_2)
self.assertEquals(list(f.package_names("cat-foo", [])), [foo_1, foo_2])
f.add_package(bar_1)
self.assertEquals(list(f.package_names("cat-bar", [])), [bar_1])
def test_06_add_package_bad(self):
self.assertRaises(Exception, f.add_category, 1)
self.assertRaises(Exception, f.add_category, "a", "b")
def test_07_add_version(self):
f.add_package("cat-foo/pkg")
self.assertEquals(list(f.package_ids("cat-foo/pkg", [])), [])
pkg = f.add_version("cat-foo/pkg", VersionSpec("1"))
self.assertEquals(list(f.package_ids("cat-foo/pkg", [])), [pkg])
self.assertEquals(pkg.version, VersionSpec("1"))
pkg2 = f.add_version("cat-foo/pkg", VersionSpec("2"))
self.assertEquals(list(f.package_ids("cat-foo/pkg", [])), [pkg, pkg2])
self.assertEquals(pkg2.version, VersionSpec("2"))
pkg3 = f.add_version("cat-bar/pkg", VersionSpec("0"))
self.assertEquals(list(f.package_ids("cat-bar/pkg", [])), [pkg3])
self.assertEquals([str(x) for x in f.category_names([])], ["cat-bar", "cat-foo"])
def test_08_add_version_bad(self):
self.assertRaises(Exception, f.add_version, 1)
self.assertRaises(Exception, f.add_version, "a", "b", "c")
if __name__ == "__main__":
unittest.main()