26
26
m_dbus = m_polkit = m_aptd = None
27
29
def start_dummy_backend():
28
30
global m_dbus, m_polkit, m_aptd
29
31
# start private dbus
30
m_dbus = subprocess.Popen(["dbus-daemon",
32
m_dbus = subprocess.Popen(["dbus-daemon",
34
36
stdout=subprocess.PIPE)
35
37
# get and store address
36
38
bus_address = m_dbus.stdout.readline().strip()
37
39
os.environ["SOFTWARE_CENTER_APTD_FAKE"] = bus_address
38
40
# start fake polkit from python-aptdaemon.test
39
env = { "DBUS_SESSION_BUS_ADDRESS" : bus_address,
40
"DBUS_SYSTEM_BUS_ADDRESS" : bus_address,
41
env = {"DBUS_SESSION_BUS_ADDRESS": bus_address,
42
"DBUS_SYSTEM_BUS_ADDRESS": bus_address,
42
44
m_polkit = subprocess.Popen(
43
["/usr/share/aptdaemon/tests/fake-polkitd.py",
45
["/usr/share/aptdaemon/tests/fake-polkitd.py",
44
46
"--allowed-actions=all"],
46
48
# start aptd in dummy mode
84
90
def get_test_install_backend():
85
91
from softwarecenter.backend.installbackend import get_install_backend
86
92
backend = get_install_backend()
89
96
def get_test_gtk3_icon_cache():
90
97
from softwarecenter.ui.gtk3.utils import get_sc_icon_theme
91
98
import softwarecenter.paths
92
99
icons = get_sc_icon_theme(softwarecenter.paths.datadir)
95
103
def get_test_pkg_info():
96
104
from softwarecenter.db.pkginfo import get_pkg_info
97
105
cache = get_pkg_info()
101
110
def get_test_datadir():
102
111
import softwarecenter.paths
103
112
return softwarecenter.paths.datadir
105
115
def get_test_categories(db):
106
116
import softwarecenter.paths
107
117
from softwarecenter.db.categories import CategoriesParser
108
118
parser = CategoriesParser(db)
109
cats = parser.parse_applications_menu(softwarecenter.paths.APP_INSTALL_PATH)
119
cats = parser.parse_applications_menu(
120
softwarecenter.paths.APP_INSTALL_PATH)
112
124
def get_test_enquirer_matches(db, query=None, limit=20, sortmode=0):
113
125
from softwarecenter.db.enquire import AppEnquire
138
152
details = app.get_details(db)
139
153
details_mock = Mock(details)
140
154
for a in dir(details):
141
if a.startswith("_"): continue
155
if a.startswith("_"):
142
157
setattr(details_mock, a, getattr(details, a))
143
158
app.details = details_mock
144
159
app.get_details = lambda db: app.details
147
163
def setup_test_env():
148
164
""" Setup environment suitable for running the test/* code in a checkout.
149
165
This includes PYTHONPATH, sys.path and softwarecenter.paths.datadir.
171
187
u'name': u'Photobomb',
172
188
u'package_name': u'photobomb',
173
189
u'signing_key_id': u'1024R/75254D99',
174
u'screenshot_url': 'http://software-center.ubuntu.com/site_media/screenshots/2011/08/Screenshot.png',
190
u'screenshot_url': 'http://software-center.ubuntu.com/site_media/'\
191
'screenshots/2011/08/Screenshot.png',
175
192
u'license': 'Proprietary',
176
193
u'support_url': 'mailto:support@example.com',
177
u'series': { 'oneiric' : ['i386', 'amd64'],
178
'natty' : ['i386', 'amd64'],
194
u'series': {'oneiric': ['i386', 'amd64'],
195
'natty': ['i386', 'amd64'],
180
u'channel' : 'For Purchase',
181
u'icon_url' : 'http://software-center.ubuntu.com/site_media/icons/2011/08/64_Chainz.png',
197
u'channel': 'For Purchase',
198
u'icon_url': 'http://software-center.ubuntu.com/site_media/icons/'\
199
'2011/08/64_Chainz.png',
182
200
u'categories': 'Game;LogicGame',
186
205
def make_software_center_agent_subscription_dict(app_dict):
187
206
subscription_dict = {
188
207
u'application': app_dict,
199
218
return subscription_dict
201
221
def make_recommender_agent_recommend_me_dict():
202
222
# best to have a list of likely not-installed items
206
226
u'package_name': u'clementine'
209
229
u'package_name': u'hedgewars'
212
u'package_name': u'gelemental'
232
u'package_name': u'mangler'
215
235
u'package_name': u'nexuiz'
218
238
u'package_name': u'fgo'
221
241
u'package_name': u'musique'
224
244
u'package_name': u'pybik'
227
247
u'package_name': u'radiotray'
230
250
u'package_name': u'cherrytree'
233
253
u'package_name': u'phlipple'
256
u'package_name': u'psi'
259
u'package_name': u'midori'
239
def make_recommender_profile_upload_data():
266
def make_recommender_profile_upload_data():
240
267
from softwarecenter.utils import get_uuid
241
268
recommender_uuid = get_uuid()
242
269
profile_upload_data = [
244
'uuid': recommender_uuid,
271
'uuid': recommender_uuid,
245
272
'package_list': [
259
289
return profile_upload_data
261
292
def make_recommend_app_data():
262
recommend_app_data = {u'rid': u'265c0bb1dece93a96c5a528e7ea5dd75',
263
u'data': [{u'rating': 4.0, u'package_name': u'kftpgrabber'},
264
{u'rating': 4.0, u'package_name': u'sugar-emulator-0.90'},
265
{u'rating': 3.0, u'package_name': u'wakeup'},
266
{u'rating': 3.0, u'package_name': u'xvidcap'},
267
{u'rating': 2.0, u'package_name': u'airstrike'},
268
{u'rating': 2.0, u'package_name': u'pixbros'},
269
{u'rating': 2.0, u'package_name': u'bomber'},
270
{u'rating': 2.0, u'package_name': u'ktron'},
271
{u'rating': 2.0, u'package_name': u'gnome-mousetrap'},
272
{u'rating': 1.5, u'package_name': u'tucan'}],
293
recommend_app_data = {
294
u'rid': u'265c0bb1dece93a96c5a528e7ea5dd75',
296
{u'rating': 4.0, u'package_name': u'kftpgrabber'},
297
{u'rating': 4.0, u'package_name': u'sugar-emulator-0.90'},
298
{u'rating': 3.0, u'package_name': u'wakeup'},
299
{u'rating': 3.0, u'package_name': u'xvidcap'},
300
{u'rating': 2.0, u'package_name': u'airstrike'},
301
{u'rating': 2.0, u'package_name': u'pixbros'},
302
{u'rating': 2.0, u'package_name': u'bomber'},
303
{u'rating': 2.0, u'package_name': u'ktron'},
304
{u'rating': 2.0, u'package_name': u'gnome-mousetrap'},
305
{u'rating': 1.5, u'package_name': u'tucan'}],
274
307
return recommend_app_data