def testShouldCreateNewSessionWhenGivenValidUserIdAndPassword(self): # Given... class StubConnection (object): def request(self, url, method, data, headers): self.requestheaders = headers from StringIO import StringIO response = StringIO('<html><head><title>My Message Manager</title></head><body><p>Jalani Bakari, you are signed in (Residential)!</body></html>') response.getheaders = lambda: {'set-cookie':'sid=12345abcde'} return response StubConnection = Stub(PcsConnection)(StubConnection) conn = StubConnection() source = SessionScreenscrapeSource() @patch(source) def create_host_connection(self): return conn # When... session = source.create_session('valid_user', 'valid_pass') # Then... self.assertEqual(session.user, 'valid_user') self.assertEqual(session.name, 'Jalani Bakari') self.assertEqual(session.id, '12345abcde')
def testShouldCreateNoSessionIfLoginResultsInInvalidSessionDocument(self): """Expected session is returned from a failed login (expected session is None).""" source = SessionScreenscrapeSource() @patch(source) def login_to_pcs(self, conn, userid, password): return ("<html><head><title>Please Login</title></head><body></body></html>", {}) try: session = source.create_session('uid', 'pass') except SessionLoginError: return self.fail('Should have raised SessionLoginError')
def testShouldCreateNewSessionAccordingToContentInValidSessionDocument(self): """Expected session is returned from a successful login.""" source = SessionScreenscrapeSource() @patch(source) def login_to_pcs(self, conn, userid, password): return ("""<html> <head> <title>My Message Manager</title> </head> <body> <p>Mr. Bojangles, you are signed in. Yay!</p> </body> </html> """, {'set-cookie':'sid=abcde'}) session = source.create_session('uid', 'pass') self.assertEqual(session.id, 'abcde') self.assertEqual(session.user, 'uid') self.assertEqual(session.name, 'Mr. Bojangles')