equal
deleted
inserted
replaced
307 'Let CubicWebTC.setUpClass instantiate it and modify it afterwards.' % cls) |
307 'Let CubicWebTC.setUpClass instantiate it and modify it afterwards.' % cls) |
308 cls.config = cls.configcls(cls.appid, test_module_file) |
308 cls.config = cls.configcls(cls.appid, test_module_file) |
309 cls.config.mode = 'test' |
309 cls.config.mode = 'test' |
310 |
310 |
311 def __init__(self, *args, **kwargs): |
311 def __init__(self, *args, **kwargs): |
312 self._admin_session = None |
|
313 self.repo = None |
312 self.repo = None |
314 self._open_access = set() |
313 self._open_access = set() |
315 super(CubicWebTC, self).__init__(*args, **kwargs) |
314 super(CubicWebTC, self).__init__(*args, **kwargs) |
316 |
315 |
317 def run(self, *args, **kwds): |
316 def run(self, *args, **kwds): |
337 while self._open_access: |
336 while self._open_access: |
338 try: |
337 try: |
339 self._open_access.pop() |
338 self._open_access.pop() |
340 except BadConnectionId: |
339 except BadConnectionId: |
341 continue # already closed |
340 continue # already closed |
342 |
|
343 @property |
|
344 def session(self): |
|
345 """return admin session""" |
|
346 return self._admin_session |
|
347 |
341 |
348 def _init_repo(self): |
342 def _init_repo(self): |
349 """init the repository and connection to it. |
343 """init the repository and connection to it. |
350 """ |
344 """ |
351 # get or restore and working db. |
345 # get or restore and working db. |
354 db_handler.restore_database(self.test_db_id) |
348 db_handler.restore_database(self.test_db_id) |
355 self.repo = db_handler.get_repo(startup=True) |
349 self.repo = db_handler.get_repo(startup=True) |
356 # get an admin session (without actual login) |
350 # get an admin session (without actual login) |
357 login = text_type(db_handler.config.default_admin_config['login']) |
351 login = text_type(db_handler.config.default_admin_config['login']) |
358 self.admin_access = self.new_access(login) |
352 self.admin_access = self.new_access(login) |
359 self._admin_session = self.admin_access._session |
|
360 |
353 |
361 # config management ######################################################## |
354 # config management ######################################################## |
362 |
355 |
363 @classmethod # XXX could be turned into a regular method |
356 @classmethod # XXX could be turned into a regular method |
364 def init_config(cls, config): |
357 def init_config(cls, config): |
430 self.config.set_anonymous_allowed(self.anonymous_allowed) |
423 self.config.set_anonymous_allowed(self.anonymous_allowed) |
431 self.setup_database() |
424 self.setup_database() |
432 MAILBOX[:] = [] # reset mailbox |
425 MAILBOX[:] = [] # reset mailbox |
433 |
426 |
434 def tearDown(self): |
427 def tearDown(self): |
435 # XXX hack until logilab.common.testlib is fixed |
|
436 if self._admin_session is not None: |
|
437 self._admin_session = None |
|
438 while self._cleanups: |
428 while self._cleanups: |
439 cleanup, args, kwargs = self._cleanups.pop(-1) |
429 cleanup, args, kwargs = self._cleanups.pop(-1) |
440 cleanup(*args, **kwargs) |
430 cleanup(*args, **kwargs) |
441 self.repo.turn_repo_off() |
431 self.repo.turn_repo_off() |
442 |
432 |