コード例 #1
0
ファイル: ScopeServers.py プロジェクト: mnlipp/CoCy
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!")
コード例 #2
0
ファイル: ScopeServers.py プロジェクト: mnlipp/CoCy
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!")
コード例 #3
0
ファイル: ScopeServers.py プロジェクト: mnlipp/CoCy
 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()
コード例 #4
0
ファイル: ScopeServers.py プロジェクト: mnlipp/CoCy
    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()
コード例 #5
0
 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])
コード例 #6
0
ファイル: VPathArgs.py プロジェクト: mnlipp/CoCy
    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()
コード例 #7
0
ファイル: VPathArgs.py プロジェクト: mnlipp/CoCy
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()
コード例 #8
0
    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')))
コード例 #9
0
}


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()