class ArgumentsInSessionTest(TestCase):
    def setUp(self):
        self.argsInSession = ArgumentsInSession()
        self.observer = CallTrace('Observer')
        self.argsInSession.addObserver(self.observer)
        
        
    def testAddOnlyOnce(self):
        sessions = []
        def handleRequest(session=None, *args, **kwargs):
            sessions.append(session)
            yield 'goodbye'
        self.observer.handleRequest = handleRequest

        session = {}
        list(compose(self.argsInSession.handleRequest(session=session, arguments={'aap': ["+'noot'"]})))
        self.assertEquals(['noot'], sessions[0]['aap'])
        self.assertEquals(session, sessions[0])
        
        list(compose(self.argsInSession.handleRequest(session=session, arguments={'aap': ["+'noot'"]})))
        self.assertEquals(sessions[0], sessions[1])
        self.assertEquals(['noot'], sessions[0]['aap'])

    def testParseAndSetSessionVars(self):
        arguments = {}
        def handleRequest(session=None, *args, **kwargs):
            arguments.update(session)
            yield 'goodbye'
        self.observer.handleRequest = handleRequest
        list(compose(self.argsInSession.handleRequest(session={}, arguments={'key': ["+('a simple tuple',)"]})))
        self.assertEquals(1, len(arguments))
        self.assertTrue('key' in arguments)
        self.assertEquals( [('a simple tuple',)], arguments['key'])

    def testParseAndSetAndRemoveSessionVars2(self):
        arguments = {}
        def handleRequest(session=None, *args, **kwargs):
            arguments.update(session)
            yield 'goodbye'
        self.observer.handleRequest = handleRequest
        session = {}
        list(compose(self.argsInSession.handleRequest(session=session, arguments={'aap': ["+'noot'"]})))
        self.assertEquals( ['noot'], arguments['aap'])
        list(compose(self.argsInSession.handleRequest(session=session, arguments={'aap': ["-'noot'"]})))
        self.assertEquals( [], arguments['aap'])

    def testDoNotEvalAnything(self):
        response = ''.join(compose(self.argsInSession.handleRequest(session={}, arguments={'key': ["+exit(0)"]})))
        self.assertEquals("HTTP/1.0 400 Bad Request\r\n\r\nname 'exit' is not defined", response)

    def testAddWithoutSignImpliesPlus(self):
        arguments = {}
        def handleRequest(session=None, *args, **kwargs):
            arguments.update(session)
            yield 'goodbye'
        self.observer.handleRequest = handleRequest
        session = {}
        list(compose(self.argsInSession.handleRequest(session=session, arguments={'aap': ["noot"]})))
        self.assertEquals( ['noot'], arguments['aap'])
Exemplo n.º 2
0
 def setUp(self):
     self.argsInSession = ArgumentsInSession()
     self.observer = CallTrace('Observer')
     self.argsInSession.addObserver(self.observer)
Exemplo n.º 3
0
class ArgumentsInSessionTest(TestCase):
    def setUp(self):
        self.argsInSession = ArgumentsInSession()
        self.observer = CallTrace('Observer')
        self.argsInSession.addObserver(self.observer)

    def testAddOnlyOnce(self):
        sessions = []

        def handleRequest(session=None, *args, **kwargs):
            sessions.append(session)
            yield 'goodbye'

        self.observer.handleRequest = handleRequest

        session = {}
        list(
            compose(
                self.argsInSession.handleRequest(
                    session=session, arguments={'aap': ["+'noot'"]})))
        self.assertEqual(['noot'], sessions[0]['aap'])
        self.assertEqual(session, sessions[0])

        list(
            compose(
                self.argsInSession.handleRequest(
                    session=session, arguments={'aap': ["+'noot'"]})))
        self.assertEqual(sessions[0], sessions[1])
        self.assertEqual(['noot'], sessions[0]['aap'])

    def testParseAndSetSessionVars(self):
        arguments = {}

        def handleRequest(session=None, *args, **kwargs):
            arguments.update(session)
            yield 'goodbye'

        self.observer.handleRequest = handleRequest
        list(
            compose(
                self.argsInSession.handleRequest(
                    session={}, arguments={'key': ["+('a simple tuple',)"]})))
        self.assertEqual(1, len(arguments))
        self.assertTrue('key' in arguments)
        self.assertEqual([('a simple tuple', )], arguments['key'])

    def testParseAndSetAndRemoveSessionVars2(self):
        arguments = {}

        def handleRequest(session=None, *args, **kwargs):
            arguments.update(session)
            yield 'goodbye'

        self.observer.handleRequest = handleRequest
        session = {}
        list(
            compose(
                self.argsInSession.handleRequest(
                    session=session, arguments={'aap': ["+'noot'"]})))
        self.assertEqual(['noot'], arguments['aap'])
        list(
            compose(
                self.argsInSession.handleRequest(
                    session=session, arguments={'aap': ["-'noot'"]})))
        self.assertEqual([], arguments['aap'])

    def testDoNotEvalAnything(self):
        response = ''.join(
            compose(
                self.argsInSession.handleRequest(
                    session={}, arguments={'key': ["+exit(0)"]})))
        self.assertEqual(
            "HTTP/1.0 400 Bad Request\r\n\r\nname 'exit' is not defined",
            response)

    def testAddWithoutSignImpliesPlus(self):
        arguments = {}

        def handleRequest(session=None, *args, **kwargs):
            arguments.update(session)
            yield 'goodbye'

        self.observer.handleRequest = handleRequest
        session = {}
        list(
            compose(
                self.argsInSession.handleRequest(session=session,
                                                 arguments={'aap': ["noot"]})))
        self.assertEqual(['noot'], arguments['aap'])
 def setUp(self):
     self.argsInSession = ArgumentsInSession()
     self.observer = CallTrace('Observer')
     self.argsInSession.addObserver(self.observer)