Exemplo n.º 1
0
    def testMultiAgent(self):
        """ Verify multiple agent IDs are recognized """

        request = current.request

        assertEqual = self.assertEqual
        assertTrue = self.assertTrue
        assertIn = self.assertIn

        agent_ids = ("widget-1", "widget-2", "widget-3")

        # Single "agent" var
        request._get_vars = Storage({"agent": "widget-1,widget-2,widget-3"})
        context = S3DashboardContext()
        assertTrue(type(context.agent) is list)
        for agent_id in agent_ids:
            assertIn(agent_id, context.agent)
        assertEqual(context.bulk, True)

        # Multiple "agent" vars
        request._get_vars = Storage(
            {"agent": ["widget-1", "widget-2,widget-3"]})
        context = S3DashboardContext()
        assertTrue(type(context.agent) is list)
        for agent_id in agent_ids:
            assertIn(agent_id, context.agent)
        assertEqual(context.bulk, True)

        # Can not deny "bulk" with multiple agent IDs
        request._get_vars = Storage({
            "agent": "widget-1,widget-2,widget-3",
            "bulk": "0"
        })
        context = S3DashboardContext()
        assertEqual(context.bulk, True)
Exemplo n.º 2
0
    def testWithCommand(self):
        """ Verify that first URL arg gives context command """

        request = current.request
        assertEqual = self.assertEqual

        request.args = ["test"]
        context = S3DashboardContext()
        assertEqual(context.command, "test")

        request.args = ["skip", "other"]
        context = S3DashboardContext()
        assertEqual(context.command, "skip")
Exemplo n.º 3
0
    def testFormatQuery(self):
        """ Verify S3DashboardContext recognizes URL format query """

        request = current.request
        request.extension = "html"
        request.args = ["command.json"]
        assertEqual = self.assertEqual

        request._get_vars = Storage()
        context = S3DashboardContext()
        assertEqual(context.representation, "json")

        request._get_vars = Storage({"format": "xml"})
        context = S3DashboardContext()
        assertEqual(context.representation, "xml")
Exemplo n.º 4
0
    def testSharedWrite(self):
        """ Verify item pattern to write shared context dict """

        context = S3DashboardContext()

        context["test"] = "ABC"
        self.assertTrue("test" in context.shared)
        self.assertEqual(context.shared["test"], "ABC")
Exemplo n.º 5
0
    def testSingleAgentBulk(self):
        """ Verify single agent ID can still be bulk """

        request = current.request
        assertEqual = self.assertEqual

        # Test with trailing comma
        request._get_vars = Storage({"agent": "widget-1,"})
        context = S3DashboardContext()
        assertEqual(context.agent, ["widget-1"])
        assertEqual(context.bulk, True)

        # Test with explicit "bulk" option
        request._get_vars = Storage({"agent": "widget-1", "bulk": "1"})
        context = S3DashboardContext()
        assertEqual(context.agent, ["widget-1"])
        assertEqual(context.bulk, True)
Exemplo n.º 6
0
    def testWithoutCommand(self):
        """ Verify that no URL args give no context command """

        request = current.request
        request.args = []

        context = S3DashboardContext()
        self.assertEqual(context.command, None)
Exemplo n.º 7
0
    def testCommandWithFormatExtension(self):
        """ Verify that format extension is ignored for command """

        request = current.request
        assertEqual = self.assertEqual

        request.args = ["test.xml"]
        context = S3DashboardContext()
        assertEqual(context.command, "test")
Exemplo n.º 8
0
    def testHTTP(self):
        """ Verify S3DashboardContext.http matches request method """

        request = current.request
        assertEqual = self.assertEqual

        for method in ("GET", "POST", "DELETE"):
            request.env.request_method = method
            context = S3DashboardContext()
            assertEqual(context.http, method)
Exemplo n.º 9
0
    def testSingleAgent(self):
        """ Verify single agent ID is recognized """

        request = current.request
        assertEqual = self.assertEqual

        request._get_vars = Storage({"agent": "widget-1"})
        context = S3DashboardContext()
        assertEqual(context.agent, "widget-1")
        assertEqual(context.bulk, False)
Exemplo n.º 10
0
    def testNoAgent(self):
        """ Verify there is no default agent """

        request = current.request
        assertEqual = self.assertEqual

        request._get_vars = Storage()
        context = S3DashboardContext()
        assertEqual(context.agent, None)
        assertEqual(context.bulk, False)
Exemplo n.º 11
0
    def testSharedRead(self):
        """ Verify item pattern to read shared context dict """

        context = S3DashboardContext()

        context.shared["test"] = "XYZ"
        self.assertEqual(context["test"], "XYZ")

        # Verify KeyError raised when attempting to access nonexistent item
        with self.assertRaises(KeyError):
            context["nonexistent"]
Exemplo n.º 12
0
    def testFormatDefault(self):
        """ Verify S3DashboardContext falls back to html format """

        # Remove all format hints
        request = current.request
        request.extension = None
        request.args = []
        request._get_vars = Storage()

        context = S3DashboardContext()
        self.assertEqual(context.representation, "html")
Exemplo n.º 13
0
    def testFormatExtension(self):
        """ Verify S3DashboardContext recognizes URL format extension """

        request = current.request
        request._get_vars = Storage()
        assertEqual = self.assertEqual

        request.extension = "json"
        request.args = ["command", "1"]
        context = S3DashboardContext()
        assertEqual(context.representation, "json")

        request.extension = "json"
        request.args = ["command.xml", "1"]
        context = S3DashboardContext()
        assertEqual(context.representation, "xml")

        request.extension = "json"
        request.args = ["command.xml", "1.pdf"]
        context = S3DashboardContext()
        assertEqual(context.representation, "pdf")
Exemplo n.º 14
0
    def testSharedGet(self):
        """ Verify get() method to read shared context dict """

        assertEqual = self.assertEqual

        context = S3DashboardContext()

        context.shared["test"] = "XYZ"

        assertEqual(context.get("test"), "XYZ")
        assertEqual(context.get("nonexistent"), None)

        default = lambda: None
        self.assertTrue(context.get("nonexistent", default) is default)
Exemplo n.º 15
0
    def testSharedDelete(self):
        """ Verify deletion of shared context items """

        context = S3DashboardContext()

        context.shared["test"] = "XYZ"

        # Verify deletion of item
        del context["test"]
        self.assertNotIn("test", context.shared)

        # Verify KeyError raised when attempting to delete nonexistent item
        with self.assertRaises(KeyError):
            del context["test"]
Exemplo n.º 16
0
    def testAttributeFallback(self):
        """ Verify attribute access falls back to current request """

        request = current.request

        assertIn = self.assertIn
        assertNotIn = self.assertNotIn
        assertTrue = self.assertTrue

        fallback = request.args
        override = ["override"]

        context = S3DashboardContext(request)

        # Check fallback
        assertNotIn("args", context.__dict__)
        assertTrue(context.args is fallback)

        # Check override
        context.args = override
        assertIn("args", context.__dict__)
        assertTrue(request.args is fallback)
        assertTrue(context.args is override)
Exemplo n.º 17
0
    def testHTTPDefault(self):
        """ Verify S3DashboardContext.http defaults to GET """

        current.request.env.request_method = None
        context = S3DashboardContext()
        self.assertEqual(context.http, "GET")