1
# Copyright 2010-2011 Canonical Ltd. This software is licensed under the
2
# GNU Affero General Public License version 3 (see the file LICENSE).
13
from zope.component import (
18
from lpresults.repository.source import Source
19
from lpresults.repository.exceptions import RepositoryError
21
from lpresults.repository.zope.interfaces import IZRepository
22
from lpresults.repository.zope.zrepository import ZRepository
25
class TestZRepository(TestCase):
28
self.zrepository = ZRepository()
31
self.zrepository._reset()
33
def test_noName(self):
34
self.assertRaises(RepositoryError, self.zrepository.get, "pci")
36
def test_createNamed(self):
37
source = self.zrepository.create("pci", "file:///pci")
38
self.assertTrue(self.zrepository.get("pci") is source)
40
def test_createNamedTwice(self):
41
self.zrepository.create("pci", "file:///pci")
43
RepositoryError, self.zrepository.create, "pci", "file:///pci")
45
def test_createDefault(self):
46
self.zrepository.setDefaultURL("pci", "file:///pci")
47
source = self.zrepository.create("pci")
48
self.assertTrue(isinstance(source, Source))
50
def test_createDefaultTwice(self):
51
self.zrepository.setDefaultURL("pci", "file:///pci")
52
self.zrepository.create("pci")
53
self.assertRaises(RepositoryError, self.zrepository.create, "pci")
55
def test_getName(self):
56
source = self.zrepository.create("pci", "file:///pci")
57
self.assertEquals(self.zrepository.getName(source), "pci")
59
def test_getWithURL(self):
60
source = self.zrepository.get("pci", "file:///pci")
61
self.assertTrue(isinstance(source, Source))
62
self.assertTrue(self.zrepository.get("pci") is source)
63
self.assertTrue(self.zrepository.get("pci", "file:///pci") is source)
65
def test_itersources(self):
66
source1 = self.zrepository.create("pci", "file:///pci")
67
source2 = self.zrepository.create("pnp", "file:///pnp")
68
source3 = self.zrepository.create("usb", "file:///usb")
70
for name, source in self.zrepository.itersources():
71
sources.append((name, source))
72
self.assertEquals(len(sources), 3)
73
self.assertEquals(set(sources),
74
set([("pci", source1), ("pnp", source2),
77
def test_remove(self):
78
source = self.zrepository.create("pci", "file:///pci")
79
self.assertEquals(self.zrepository.getName(source), "pci")
80
self.zrepository.remove(source)
81
self.assertEquals(self.zrepository.getName(source), None)
83
def test_setDefaultURL(self):
84
self.zrepository.setDefaultURL("pci", "file:///pci")
85
source = self.zrepository.get("pci")
86
self.assertTrue(isinstance(source, Source))
88
def test_getDefaultURLs(self):
89
self.zrepository.setDefaultURL("pci", "file:///pci")
90
self.zrepository.setDefaultURL("pnp", "file:///pnp")
91
self.zrepository.setDefaultURL("usb", "file:///usb")
92
default_uris = self.zrepository.getDefaultURLs()
93
self.assertEquals(default_uris, {
100
class TestZRepositoryUtility(TestCase):
102
def test_utility(self):
103
provideUtility(ZRepository())
104
self.assertTrue(isinstance(getUtility(IZRepository), ZRepository))
108
return defaultTestLoader.loadTestsFromName(__name__)