Python twisted.web.server.Session() Examples
The following are 30
code examples of twisted.web.server.Session().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
twisted.web.server
, or try the search function
.
Example #1
Source File: test_web.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_sessionUIDGeneration(self): """ L{site.getSession} generates L{Session} objects with distinct UIDs from a secure source of entropy. """ site = server.Site(resource.Resource()) # Ensure that we _would_ use the unpredictable random source if the # test didn't stub it. self.assertIdentical(site._entropy, os.urandom) def predictableEntropy(n): predictableEntropy.x += 1 return (unichr(predictableEntropy.x) * n).encode("charmap") predictableEntropy.x = 0 self.patch(site, "_entropy", predictableEntropy) a = self.getAutoExpiringSession(site) b = self.getAutoExpiringSession(site) self.assertEqual(a.uid, b"01" * 0x20) self.assertEqual(b.uid, b"02" * 0x20) # This functionality is silly (the value is no longer used in session # generation), but 'counter' was a public attribute since time # immemorial so we should make sure if anyone was using it to get site # metrics or something it keeps working. self.assertEqual(site.counter, 2)
Example #2
Source File: test_web.py From learn_python3_spider with MIT License | 6 votes |
def test_sessionAttribute(self): """ On a L{Request}, the C{session} attribute retrieves the associated L{Session} only if it has been initialized. If the request is secure, it retrieves the secure session. """ site = server.Site(resource.Resource()) d = DummyChannel() d.transport = DummyChannel.SSL() request = server.Request(d, 1) request.site = site request.sitepath = [] self.assertIs(request.session, None) insecureSession = request.getSession(forceNotSecure=True) self.addCleanup(insecureSession.expire) self.assertIs(request.session, None) secureSession = request.getSession() self.addCleanup(secureSession.expire) self.assertIsNot(secureSession, None) self.assertIsNot(secureSession, insecureSession) self.assertIs(request.session, secureSession)
Example #3
Source File: test_web.py From python-for-android with Apache License 2.0 | 6 votes |
def test_checkExpiredDeprecated(self): """ L{server.Session.checkExpired} is deprecated. """ self.session.checkExpired() warnings = self.flushWarnings([self.test_checkExpiredDeprecated]) self.assertEqual(warnings[0]['category'], DeprecationWarning) self.assertEqual( warnings[0]['message'], "Session.checkExpired is deprecated since Twisted 9.0; sessions " "check themselves now, you don't need to.") self.assertEqual(len(warnings), 1) # Conditional requests: # If-None-Match, If-Modified-Since # make conditional request: # normal response if condition succeeds # if condition fails: # response code # no body
Example #4
Source File: test_web.py From python-for-android with Apache License 2.0 | 6 votes |
def test_touch(self): """ L{server.Session.touch} updates L{server.Session.lastModified} and delays session timeout. """ # Make sure it works before startCheckingExpiration self.clock.advance(3) self.session.touch() self.assertEqual(self.session.lastModified, 3) # And after startCheckingExpiration self.session.startCheckingExpiration() self.clock.advance(self.session.sessionTimeout - 1) self.session.touch() self.clock.advance(self.session.sessionTimeout - 1) self.assertIn(self.uid, self.site.sessions) # It should have advanced it by just sessionTimeout, no more. self.clock.advance(1) self.assertNotIn(self.uid, self.site.sessions)
Example #5
Source File: test_web.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_sessionAttribute(self): """ On a L{Request}, the C{session} attribute retrieves the associated L{Session} only if it has been initialized. If the request is secure, it retrieves the secure session. """ site = server.Site(resource.Resource()) d = DummyChannel() d.transport = DummyChannel.SSL() request = server.Request(d, 1) request.site = site request.sitepath = [] self.assertIs(request.session, None) insecureSession = request.getSession(forceNotSecure=True) self.addCleanup(insecureSession.expire) self.assertIs(request.session, None) secureSession = request.getSession() self.addCleanup(secureSession.expire) self.assertIsNot(secureSession, None) self.assertIsNot(secureSession, insecureSession) self.assertIs(request.session, secureSession)
Example #6
Source File: test_web.py From python-for-android with Apache License 2.0 | 6 votes |
def test_startCheckingExpiration(self): """ L{server.Session.startCheckingExpiration} causes the session to expire after L{server.Session.sessionTimeout} seconds without activity. """ self.session.startCheckingExpiration() # Advance to almost the timeout - nothing should happen. self.clock.advance(self.session.sessionTimeout - 1) self.assertIn(self.uid, self.site.sessions) # Advance to the timeout, the session should expire. self.clock.advance(1) self.assertNotIn(self.uid, self.site.sessions) # There should be no calls left over, either. self.assertFalse(self.clock.calls)
Example #7
Source File: test_web.py From learn_python3_spider with MIT License | 6 votes |
def test_sessionUIDGeneration(self): """ L{site.getSession} generates L{Session} objects with distinct UIDs from a secure source of entropy. """ site = server.Site(resource.Resource()) # Ensure that we _would_ use the unpredictable random source if the # test didn't stub it. self.assertIdentical(site._entropy, os.urandom) def predictableEntropy(n): predictableEntropy.x += 1 return (unichr(predictableEntropy.x) * n).encode("charmap") predictableEntropy.x = 0 self.patch(site, "_entropy", predictableEntropy) a = self.getAutoExpiringSession(site) b = self.getAutoExpiringSession(site) self.assertEqual(a.uid, b"01" * 0x20) self.assertEqual(b.uid, b"02" * 0x20) # This functionality is silly (the value is no longer used in session # generation), but 'counter' was a public attribute since time # immemorial so we should make sure if anyone was using it to get site # metrics or something it keeps working. self.assertEqual(site.counter, 2)
Example #8
Source File: test_web.py From learn_python3_spider with MIT License | 5 votes |
def test_touch(self): """ L{server.Session.touch} updates L{server.Session.lastModified} and delays session timeout. """ # Make sure it works before startCheckingExpiration self.clock.advance(3) self.session.touch() self.assertEqual(self.session.lastModified, 3) # And after startCheckingExpiration self.session.startCheckingExpiration() self.clock.advance(self.session.sessionTimeout - 1) self.session.touch() self.clock.advance(self.session.sessionTimeout - 1) self.assertIn(self.uid, self.site.sessions) # It should have advanced it by just sessionTimeout, no more. self.clock.advance(1) self.assertNotIn(self.uid, self.site.sessions) # Conditional requests: # If-None-Match, If-Modified-Since # make conditional request: # normal response if condition succeeds # if condition fails: # response code # no body
Example #9
Source File: test_web.py From learn_python3_spider with MIT License | 5 votes |
def test_expireWhileChecking(self): """ L{server.Session.expire} expires the session even if the timeout call isn't due yet. """ self.session.startCheckingExpiration() self.test_expire()
Example #10
Source File: requesthelper.py From learn_python3_spider with MIT License | 5 votes |
def __init__(self, postpath, session=None, client=None): self.sitepath = [] self.written = [] self.finished = 0 self.postpath = postpath self.prepath = [] self.session = None self.protoSession = session or Session(0, self) self.args = {} self.requestHeaders = Headers() self.responseHeaders = Headers() self.responseCode = None self._finishedDeferreds = [] self._serverName = b"dummy" self.clientproto = b"HTTP/1.0"
Example #11
Source File: requesthelper.py From learn_python3_spider with MIT License | 5 votes |
def getSession(self): if self.session: return self.session assert not self.written, "Session cannot be requested after data has been written." self.session = self.protoSession return self.session
Example #12
Source File: test_web.py From python-for-android with Apache License 2.0 | 5 votes |
def __init__(self, postpath, session=None): self.sitepath = [] self.written = [] self.finished = 0 self.postpath = postpath self.prepath = [] self.session = None self.protoSession = session or server.Session(0, self) self.args = {} self.outgoingHeaders = {} self.responseHeaders = http_headers.Headers() self.responseCode = None self.headers = {} self._finishedDeferreds = []
Example #13
Source File: test_web.py From python-for-android with Apache License 2.0 | 5 votes |
def getSession(self): if self.session: return self.session assert not self.written, "Session cannot be requested after data has been written." self.session = self.protoSession return self.session
Example #14
Source File: test_web.py From python-for-android with Apache License 2.0 | 5 votes |
def setUp(self): """ Create a site with one active session using a deterministic, easily controlled clock. """ self.clock = task.Clock() self.uid = 'unique' self.site = server.Site(resource.Resource()) self.session = server.Session(self.site, self.uid, self.clock) self.site.sessions[self.uid] = self.session
Example #15
Source File: test_web.py From python-for-android with Apache License 2.0 | 5 votes |
def test_defaultReactor(self): """ If not value is passed to L{server.Session.__init__}, the global reactor is used. """ session = server.Session(server.Site(resource.Resource()), '123') self.assertIdentical(session._reactor, reactor)
Example #16
Source File: test_web.py From python-for-android with Apache License 2.0 | 5 votes |
def test_expireWhileChecking(self): """ L{server.Session.expire} expires the session even if the timeout call isn't due yet. """ self.session.startCheckingExpiration() self.test_expire()
Example #17
Source File: test_web.py From python-for-android with Apache License 2.0 | 5 votes |
def test_notifyOnExpire(self): """ A function registered with L{server.Session.notifyOnExpire} is called when the session expires. """ callbackRan = [False] def expired(): callbackRan[0] = True self.session.notifyOnExpire(expired) self.session.expire() self.assertTrue(callbackRan[0])
Example #18
Source File: test_web.py From python-for-android with Apache License 2.0 | 5 votes |
def test_startCheckingExpirationParameterDeprecated(self): """ L{server.Session.startCheckingExpiration} emits a deprecation warning if it is invoked with a parameter. """ self.session.startCheckingExpiration(123) warnings = self.flushWarnings([ self.test_startCheckingExpirationParameterDeprecated]) self.assertEqual(len(warnings), 1) self.assertEqual(warnings[0]['category'], DeprecationWarning) self.assertEqual( warnings[0]['message'], "The lifetime parameter to startCheckingExpiration is deprecated " "since Twisted 9.0. See Session.sessionTimeout instead.")
Example #19
Source File: test_web.py From BitTorrent with GNU General Public License v3.0 | 5 votes |
def __init__(self, postpath, session=None): self.sitepath = [] self.written = [] self.finished = 0 self.postpath = postpath self.prepath = [] self.session = None self.protoSession = session or server.Session(0, self) self.args = {} self.outgoingHeaders = {}
Example #20
Source File: test_web.py From BitTorrent with GNU General Public License v3.0 | 5 votes |
def getSession(self): if self.session: return self.session assert not self.written, "Session cannot be requested after data has been written." self.session = self.protoSession return self.session
Example #21
Source File: requesthelper.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def getSession(self): if self.session: return self.session assert not self.written, "Session cannot be requested after data has been written." self.session = self.protoSession return self.session
Example #22
Source File: test_web.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_makeSession(self): """ L{site.getSession} generates a new C{Session} instance with an uid of type L{bytes}. """ site = server.Site(resource.Resource()) session = self.getAutoExpiringSession(site) self.assertIsInstance(session, server.Session) self.assertIsInstance(session.uid, bytes)
Example #23
Source File: test_web.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def setUp(self): """ Create a site with one active session using a deterministic, easily controlled clock. """ self.clock = Clock() self.uid = b'unique' self.site = server.Site(resource.Resource()) self.session = server.Session(self.site, self.uid, self.clock) self.site.sessions[self.uid] = self.session
Example #24
Source File: test_web.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_defaultReactor(self): """ If not value is passed to L{server.Session.__init__}, the global reactor is used. """ session = server.Session(server.Site(resource.Resource()), b'123') self.assertIdentical(session._reactor, reactor)
Example #25
Source File: test_web.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_expire(self): """ L{server.Session.expire} expires the session. """ self.session.expire() # It should be gone from the session dictionary. self.assertNotIn(self.uid, self.site.sessions) # And there should be no pending delayed calls. self.assertFalse(self.clock.calls)
Example #26
Source File: test_web.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_expireWhileChecking(self): """ L{server.Session.expire} expires the session even if the timeout call isn't due yet. """ self.session.startCheckingExpiration() self.test_expire()
Example #27
Source File: test_web.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_notifyOnExpire(self): """ A function registered with L{server.Session.notifyOnExpire} is called when the session expires. """ callbackRan = [False] def expired(): callbackRan[0] = True self.session.notifyOnExpire(expired) self.session.expire() self.assertTrue(callbackRan[0])
Example #28
Source File: test_web.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_touch(self): """ L{server.Session.touch} updates L{server.Session.lastModified} and delays session timeout. """ # Make sure it works before startCheckingExpiration self.clock.advance(3) self.session.touch() self.assertEqual(self.session.lastModified, 3) # And after startCheckingExpiration self.session.startCheckingExpiration() self.clock.advance(self.session.sessionTimeout - 1) self.session.touch() self.clock.advance(self.session.sessionTimeout - 1) self.assertIn(self.uid, self.site.sessions) # It should have advanced it by just sessionTimeout, no more. self.clock.advance(1) self.assertNotIn(self.uid, self.site.sessions) # Conditional requests: # If-None-Match, If-Modified-Since # make conditional request: # normal response if condition succeeds # if condition fails: # response code # no body
Example #29
Source File: requesthelper.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def __init__(self, postpath, session=None): self.sitepath = [] self.written = [] self.finished = 0 self.postpath = postpath self.prepath = [] self.session = None self.protoSession = session or Session(0, self) self.args = {} self.requestHeaders = Headers() self.responseHeaders = Headers() self.responseCode = None self._finishedDeferreds = [] self._serverName = b"dummy" self.clientproto = b"HTTP/1.0"
Example #30
Source File: test_web.py From learn_python3_spider with MIT License | 5 votes |
def test_notifyOnExpire(self): """ A function registered with L{server.Session.notifyOnExpire} is called when the session expires. """ callbackRan = [False] def expired(): callbackRan[0] = True self.session.notifyOnExpire(expired) self.session.expire() self.assertTrue(callbackRan[0])