class TestScopedServers(TestCase): def setUp(self): self.manager = Manager() # Debugger().register(self.manager) self.server1 = BaseServer(("localhost", 8000), channel="site1") self.server1.register(self.manager); ScopeDispatcher(channel="site1").register(self.server1) Root1().register(self.manager) self.server2 = BaseServer(("localhost", 8001), channel="site2") self.server2.register(self.manager); ScopeDispatcher(channel="site2").register(self.server2) Root2().register(self.manager) self.manager.start() def tearDown(self): self.manager.stop() def test_access(self): f = urlopen(self.server1.base) s = f.read() self.assertEqual(s, b"Hello from site 1!") f = urlopen(self.server2.base) s = f.read() self.assertEqual(s, b"Hello from site 2!")
class TestScopedServers(TestCase): def setUp(self): self.manager = Manager() # Debugger().register(self.manager) self.server1 = BaseServer(("localhost", 8000), channel="site1") self.server1.register(self.manager) ScopeDispatcher(channel="site1").register(self.server1) Root1().register(self.manager) self.server2 = BaseServer(("localhost", 8001), channel="site2") self.server2.register(self.manager) ScopeDispatcher(channel="site2").register(self.server2) Root2().register(self.manager) self.manager.start() def tearDown(self): self.manager.stop() def test_access(self): f = urlopen(self.server1.base) s = f.read() self.assertEqual(s, b"Hello from site 1!") f = urlopen(self.server2.base) s = f.read() self.assertEqual(s, b"Hello from site 2!")
def setUp(self): self.manager = Manager() # Debugger().register(self.manager) self.server1 = BaseServer(("localhost", 8000), channel="site1") self.server1.register(self.manager); ScopeDispatcher(channel="site1").register(self.server1) Root1().register(self.manager) self.server2 = BaseServer(("localhost", 8001), channel="site2") self.server2.register(self.manager); ScopeDispatcher(channel="site2").register(self.server2) Root2().register(self.manager) self.manager.start()
def setUp(self): self.manager = Manager() # Debugger().register(self.manager) self.server1 = BaseServer(("localhost", 8000), channel="site1") self.server1.register(self.manager) ScopeDispatcher(channel="site1").register(self.server1) Root1().register(self.manager) self.server2 = BaseServer(("localhost", 8001), channel="site2") self.server2.register(self.manager) ScopeDispatcher(channel="site2").register(self.server2) Root2().register(self.manager) self.manager.start()
def __init__(self, server=None, path="/", title=None, templates_dir=None, **kwargs): """ :param server: the component that handles the basic connection and protocol management. If not provided, the Portal creates its own :class:`~circuits.web.server.BaseServer` component that listens on port 4444. :type server: :class:`circuits.web.server.BaseServer` :param path: a path for URLs used by the portal. This allows the portal to co-exist with other content on the same web server. If specified, only requests starting with the given path are handled by the portal dispatcher and the path is prepended to all generated URLs. The value must start with a slash and must not end with a slash. :type path: string :param title: The title of the portal (displayed in the browser's title bar) :type title: string :param templates_dir: a directory with templates that override the portal's standard templates. Any template and localization resource is first searched for in this directory, then in the portal's built-in default directory. :type templates_dir: string """ super(Portal, self).__init__(**kwargs) self._path = path or "" self._title = title self._portlets = [] if server is None: server = BaseServer(("", 4444), channel=self.channel) else: self.channel = server.channel self.server = server if templates_dir: self._templates_dir = [os.path.abspath(templates_dir)] else: self._templates_dir = [] self._templates_dir \ += [os.path.join(dirname(dirname(__file__)), "templates")] LanguagePreferences(channel = server.channel).register(server) ThemeSelection(channel = server.channel).register(server) view = PortalView(self, channel = server.channel).register(server) self._url_generator_factory = view.url_generator_factory self._supported_locales = [] for locale in rbtranslations.available_translations\ ("l10n", self._templates_dir, "en"): trans = rbtranslations.translation\ ("l10n", self._templates_dir, [locale], "en") locale_name = trans.ugettext("language_" + locale) self._supported_locales.append((locale, locale_name)) self._supported_locales.sort(key=lambda x: x[1])
def test_access(self): self.manager = Manager() Debugger().register(self.manager) self.server = BaseServer(("localhost", 8000)) self.server.register(self.manager) Dispatcher().register(self.server) Root().register(self.manager) Leaf().register(self.manager) self.manager.start() f = urlopen(self.server.base + "/test.txt") s = f.read() self.assertEqual(s, b"Hello world!") f = urlopen(self.server.base + "/test/test.txt") s = f.read() self.assertEqual(s, b"Hello world!") self.manager.stop()
class TestVPathArgs(TestCase): def test_access(self): self.manager = Manager() Debugger().register(self.manager) self.server = BaseServer(("localhost", 8000)) self.server.register(self.manager); Dispatcher().register(self.server) Root().register(self.manager) Leaf().register(self.manager) self.manager.start() f = urlopen(self.server.base + "/test.txt") s = f.read() self.assertEqual(s, b"Hello world!") f = urlopen(self.server.base + "/test/test.txt") s = f.read() self.assertEqual(s, b"Hello world!") self.manager.stop()
def __init__(self, path, channel=channel): super(UPnPDeviceServer, self).__init__(channel=channel) self._started = False # Build a web (HTTP) server for handling requests. This is # the server that will be announced by SSDP, so it has # no fixed port number. self.web_server = BaseServer(("", 0), channel="upnp-web").register(self) # Dispatcher for "/upnp-web". disp = ScopeDispatcher(channel="upnp-web").register(self.web_server) # Dummy root controller prevents requests for nested resources # from failing. DummyRoot().register(disp) # Initially empty list of providers self._devices = [] # The configuration id, incremented every time the # configuration changes self.config_id = 1 # Open the database for uuid persistence try: # Some people encounter problems on some boxes when opening # the db file self._uuid_db = dbm.open(os.path.join(path, 'upnp_uuids'), 'c') except: self.fire( Log( logging.WARN, "Could not determine type db type of " + os.path.join(path, 'upnp_uuids'))) try: os.remove(os.path.join(path, 'upnp_uuids')) self._uuid_db = dbm.open \ (os.path.join(path, 'upnp_uuids'), 'c') except: self.fire( Log(logging.WARN, "Giving up on " + os.path.join(path, 'upnp_uuids')))
} class ErrorHandler(Component): def exception(self, error_type, value, traceback, handler=None): sys.exit() if __name__ == '__main__': application = Application("CoCy", CONFIG) Debugger().register(application) ErrorHandler().register(application) # Build a portal as user interface port = int(application.config.get("ui", "port", 0)) portal_server = BaseServer(("", port), channel="ui").register(application) portal = Portal(portal_server, title="CoCy").register(application) PortletsFactory().register(application) dev_dir = UPnPDeviceDirectory().register(application) # The light server upnp_dev_server \ = UPnPDeviceServer(application.app_dir).register(application) binary_light = BinaryLight().register(application) BinaryLightPortlet(binary_light).register(portal) from circuits.tools import graph print graph(application) application.run()