I had refactored the setup - on first try Registry().get('service_manager') returned None. Fixed.
On Thu, Jan 8, 2015 at 10:46 AM, Tim Bentley <email address hidden> wrote: > Review: Needs Information > > > > Diff comments: > >> === modified file 'openlp/core/ui/servicemanager.py' >> --- openlp/core/ui/servicemanager.py 2014-12-31 10:58:13 +0000 >> +++ openlp/core/ui/servicemanager.py 2015-01-08 18:35:24 +0000 >> @@ -338,6 +338,8 @@ >> self.setup_ui(self) >> # Need to use event as called across threads and UI is updated >> QtCore.QObject.connect(self, QtCore.SIGNAL('servicemanager_set_item'), self.on_set_item) >> + QtCore.QObject.connect(self, QtCore.SIGNAL('servicemanager_next_item'), self.next_item) >> + QtCore.QObject.connect(self, QtCore.SIGNAL('servicemanager_previous_item'), self.previous_item) >> >> def bootstrap_post_set_up(self): >> """ >> >> === modified file 'openlp/plugins/remotes/lib/httprouter.py' >> --- openlp/plugins/remotes/lib/httprouter.py 2014-12-31 10:58:13 +0000 >> +++ openlp/plugins/remotes/lib/httprouter.py 2015-01-08 18:35:24 +0000 >> @@ -582,7 +582,7 @@ >> return self.do_http_error() >> self.service_manager.emit(QtCore.SIGNAL(event), data) >> else: >> - Registry().execute(event) >> + self.service_manager.emit(QtCore.SIGNAL(event)) >> self.do_json_header() >> return json.dumps({'results': {'success': True}}).encode() >> >> >> === modified file 'tests/functional/openlp_plugins/remotes/test_router.py' >> --- tests/functional/openlp_plugins/remotes/test_router.py 2014-12-31 10:58:13 +0000 >> +++ tests/functional/openlp_plugins/remotes/test_router.py 2015-01-08 18:35:24 +0000 >> @@ -32,8 +32,9 @@ >> import os >> import urllib.request >> from unittest import TestCase >> - >> +from PyQt4 import QtCore >> from openlp.core.common import Settings, Registry >> +from openlp.core.ui import ServiceManager >> from openlp.plugins.remotes.lib.httpserver import HttpRouter >> from urllib.parse import urlparse >> from tests.functional import MagicMock, patch, mock_open >> @@ -61,9 +62,12 @@ >> """ >> Create the UI >> """ >> + Registry.create() >> self.setup_application() >> self.build_settings() >> Settings().extend_default_settings(__default_settings__) >> + self.service_manager = ServiceManager() >> + self.service_manager = Registry().service_list['service_manager'] = self.service_manager > > Why do you need this the previous line should have created and registered a valid servicemanager object. > >> self.router = HttpRouter() >> >> def tearDown(self): >> @@ -299,3 +303,41 @@ >> mocked_image_manager.assert_called_any(os.path.normpath('thumbnails\\another test'), >> 'slide1.png', None, '120x90') >> mocked_image_manager.assert_called_any(os.path.normpath('thumbnails\\another test'), 'slide1.png', '120x90') >> + >> + def remote_next_test(self): >> + """ >> + Test service manager receives remote next click properly (bug 1407445) >> + """ >> + # GIVEN: initial setup and mocks >> + self.router.routes = [(r'^/api/service/(.*)$', {'function': self.router.service, 'secure': False})] >> + self.router.request_data = False >> + mocked_next_item = MagicMock() >> + self.service_manager.next_item = mocked_next_item >> + with patch.object(self.service_manager, 'setup_ui'), \ >> + patch.object(self.router, 'do_json_header'): >> + self.service_manager.bootstrap_initialise() >> + self.app.processEvents() >> + # WHEN: Remote next is received >> + self.router.service(action='next') >> + self.app.processEvents() >> + # THEN: service_manager.next_item() should have been called >> + self.assertTrue(mocked_next_item.called, 'next_item() should have been called in service_manager') >> + >> + def remote_previous_test(self): >> + """ >> + Test service manager receives remote previous click properly (bug 1407445) >> + """ >> + # GIVEN: initial setup and mocks >> + self.router.routes = [(r'^/api/service/(.*)$', {'function': self.router.service, 'secure': False})] >> + self.router.request_data = False >> + mocked_previous_item = MagicMock() >> + self.service_manager.previous_item = mocked_previous_item >> + with patch.object(self.service_manager, 'setup_ui'), \ >> + patch.object(self.router, 'do_json_header'): >> + self.service_manager.bootstrap_initialise() >> + self.app.processEvents() >> + # WHEN: Remote next is received >> + self.router.service(action='previous') >> + self.app.processEvents() >> + # THEN: service_manager.next_item() should have been called >> + self.assertTrue(mocked_previous_item.called, 'previous_item() should have been called in service_manager') >> > > > -- > https://code.launchpad.net/~alisonken1/openlp/bug-1407445/+merge/245894 > You are the owner of lp:~alisonken1/openlp/bug-1407445.
-- - Ken Registered Linux user 296561 Slackin' since 1993 Slackware Linux (http://www.slackware.com)
« Back to merge proposal
I had refactored the setup - on first try ).get(' service_ manager' ) returned None.
Registry(
Fixed.
On Thu, Jan 8, 2015 at 10:46 AM, Tim Bentley <email address hidden> wrote: core/ui/ servicemanager. py' core/ui/ servicemanager. py 2014-12-31 10:58:13 +0000 core/ui/ servicemanager. py 2015-01-08 18:35:24 +0000 QObject. connect( self, QtCore. SIGNAL( 'servicemanager _set_item' ), self.on_set_item) QObject. connect( self, QtCore. SIGNAL( 'servicemanager _next_item' ), self.next_item) QObject. connect( self, QtCore. SIGNAL( 'servicemanager _previous_ item'), self.previous_item) post_set_ up(self) : plugins/ remotes/ lib/httprouter. py' plugins/ remotes/ lib/httprouter. py 2014-12-31 10:58:13 +0000 plugins/ remotes/ lib/httprouter. py 2015-01-08 18:35:24 +0000 http_error( ) manager. emit(QtCore. SIGNAL( event), data) ).execute( event) manager. emit(QtCore. SIGNAL( event)) json_header( ) {'results' : {'success': True}}).encode() functional/ openlp_ plugins/ remotes/ test_router. py' l/openlp_ plugins/ remotes/ test_router. py 2014-12-31 10:58:13 +0000 l/openlp_ plugins/ remotes/ test_router. py 2015-01-08 18:35:24 +0000 plugins. remotes. lib.httpserver import HttpRouter application( ) settings( ) ).extend_ default_ settings( __default_ settings_ _) manager = ServiceManager() manager = Registry( ).service_ list['service_ manager' ] = self.service_ manager image_manager. assert_ called_ any(os. path.normpath( 'thumbnails\ \another test'), image_manager. assert_ called_ any(os. path.normpath( 'thumbnails\ \another test'), 'slide1.png', '120x90') next_test( self): service/ (.*)$', {'function': self.router. service, 'secure': False})] request_ data = False manager. next_item = mocked_next_item self.service_ manager, 'setup_ui'), \ self.router, 'do_json_header'): manager. bootstrap_ initialise( ) processEvents( ) service( action= 'next') processEvents( ) manager. next_item( ) should have been called (mocked_ next_item. called, 'next_item() should have been called in service_manager') previous_ test(self) : service/ (.*)$', {'function': self.router. service, 'secure': False})] request_ data = False previous_ item = MagicMock() manager. previous_ item = mocked_ previous_ item self.service_ manager, 'setup_ui'), \ self.router, 'do_json_header'): manager. bootstrap_ initialise( ) processEvents( ) service( action= 'previous' ) processEvents( ) manager. next_item( ) should have been called (mocked_ previous_ item.called, 'previous_item() should have been called in service_manager') /code.launchpad .net/~alisonken 1/openlp/ bug-1407445/ +merge/ 245894
> Review: Needs Information
>
>
>
> Diff comments:
>
>> === modified file 'openlp/
>> --- openlp/
>> +++ openlp/
>> @@ -338,6 +338,8 @@
>> self.setup_ui(self)
>> # Need to use event as called across threads and UI is updated
>> QtCore.
>> + QtCore.
>> + QtCore.
>>
>> def bootstrap_
>> """
>>
>> === modified file 'openlp/
>> --- openlp/
>> +++ openlp/
>> @@ -582,7 +582,7 @@
>> return self.do_
>> self.service_
>> else:
>> - Registry(
>> + self.service_
>> self.do_
>> return json.dumps(
>>
>>
>> === modified file 'tests/
>> --- tests/functiona
>> +++ tests/functiona
>> @@ -32,8 +32,9 @@
>> import os
>> import urllib.request
>> from unittest import TestCase
>> -
>> +from PyQt4 import QtCore
>> from openlp.core.common import Settings, Registry
>> +from openlp.core.ui import ServiceManager
>> from openlp.
>> from urllib.parse import urlparse
>> from tests.functional import MagicMock, patch, mock_open
>> @@ -61,9 +62,12 @@
>> """
>> Create the UI
>> """
>> + Registry.create()
>> self.setup_
>> self.build_
>> Settings(
>> + self.service_
>> + self.service_
>
> Why do you need this the previous line should have created and registered a valid servicemanager object.
>
>> self.router = HttpRouter()
>>
>> def tearDown(self):
>> @@ -299,3 +303,41 @@
>> mocked_
>> 'slide1.png', None, '120x90')
>> mocked_
>> +
>> + def remote_
>> + """
>> + Test service manager receives remote next click properly (bug 1407445)
>> + """
>> + # GIVEN: initial setup and mocks
>> + self.router.routes = [(r'^/api/
>> + self.router.
>> + mocked_next_item = MagicMock()
>> + self.service_
>> + with patch.object(
>> + patch.object(
>> + self.service_
>> + self.app.
>> + # WHEN: Remote next is received
>> + self.router.
>> + self.app.
>> + # THEN: service_
>> + self.assertTrue
>> +
>> + def remote_
>> + """
>> + Test service manager receives remote previous click properly (bug 1407445)
>> + """
>> + # GIVEN: initial setup and mocks
>> + self.router.routes = [(r'^/api/
>> + self.router.
>> + mocked_
>> + self.service_
>> + with patch.object(
>> + patch.object(
>> + self.service_
>> + self.app.
>> + # WHEN: Remote next is received
>> + self.router.
>> + self.app.
>> + # THEN: service_
>> + self.assertTrue
>>
>
>
> --
> https:/
> You are the owner of lp:~alisonken1/openlp/bug-1407445.
-- www.slackware. com)
- Ken
Registered Linux user 296561
Slackin' since 1993
Slackware Linux (http://