16
16
from softwarecenter.db.database import parse_axi_values_file
17
17
from softwarecenter.db.pkginfo import get_pkg_info
18
18
from softwarecenter.db.update import update_from_app_install_data, update_from_var_lib_apt_lists, update_from_appstream_xml
19
from softwarecenter.paths import *
20
from softwarecenter.enums import *
19
from softwarecenter.enums import (
20
XAPIAN_VALUE_ARCHIVE_PPA,
23
PKG_STATE_NEEDS_SOURCE,
24
PKG_STATE_NEEDS_PURCHASE,
22
28
class TestDatabase(unittest.TestCase):
23
29
""" tests the store database """
96
102
db = xapian.WritableDatabase("./data/test.db",
97
103
xapian.DB_CREATE_OR_OVERWRITE)
98
104
cache = apt.Cache()
99
# we test against the real https://sc.ubuntu.com so we need network
100
res = update_from_software_center_agent(db, cache)
101
# sofware-center.ubuntu.com down; film at 11
105
# monkey patch distro to ensure we get data
106
import softwarecenter.distro
107
distro = softwarecenter.distro.get_distro()
108
distro.get_codename = lambda: "natty"
109
# we test against the real https://software-center.ubuntu.com here
111
res = update_from_software_center_agent(db, cache, ignore_etag=True)
103
113
self.assertTrue(res)
104
self.assertEqual(db.get_doccount(), 1)
114
self.assertTrue(db.get_doccount() > 1)
105
115
for p in db.postlist(""):
106
116
doc = db.get_document(p.docid)
107
self.assertTrue(doc.get_value(XAPIAN_VALUE_ARCHIVE_PPA),
108
"pay-owner/pay-ppa-name")
109
self.assertTrue(doc.get_value(XAPIAN_VALUE_ICON).startswith("sc-agent"))
117
ppa = doc.get_value(XAPIAN_VALUE_ARCHIVE_PPA)
118
self.assertTrue(ppa.startswith("commercial-ppa") and
121
doc.get_value(XAPIAN_VALUE_ICON).startswith("sc-agent"))
111
123
def test_application(self):
112
124
db = StoreDatabase("/var/cache/software-center/xapian", self.cache)
118
130
db = xapian.WritableDatabase("./data/test.db",
119
131
xapian.DB_CREATE_OR_OVERWRITE)
120
132
res = update_from_app_install_data(db, self.cache, datadir="./data/")
121
134
db = StoreDatabase("./data/test.db", self.cache)
122
135
db.open(use_axi=False, use_agent=False)
123
136
self.assertEqual(len(db), 5)
194
207
db = xapian.WritableDatabase("./data/test.db",
195
208
xapian.DB_CREATE_OR_OVERWRITE)
196
209
res = update_from_app_install_data(db, self.cache, datadir="./data/")
197
211
db = StoreDatabase("./data/test.db", self.cache)
198
212
db.open(use_axi=False)
199
213
# test PKG_STATE_INSTALLED
248
262
db = xapian.WritableDatabase("./data/test.db",
249
263
xapian.DB_CREATE_OR_OVERWRITE)
250
264
res = update_from_app_install_data(db, self.cache, datadir="./data/")
251
266
db = StoreDatabase("./data/test.db", self.cache)
252
267
db.open(use_axi=True)
283
298
app-popcon 4 # app-install .desktop popcon rank
285
300
open("axi-test-values","w").write(s)
286
db = StoreDatabase("/var/cache/software-center/xapian", self.cache)
301
#db = StoreDatabase("/var/cache/software-center/xapian", self.cache)
287
302
axi_values = parse_axi_values_file("axi-test-values")
288
303
self.assertNotEqual(axi_values, {})