class SocialCenterPublishStubTestCase(TestCase): """Test Case 6: Social Center Must Publish Posts on Stub """ TEST_SITE = "test" @classmethod def setUpClass(self): self.test_bot = TestBot() self.social_center = SocialCenter() self.social_center.add_site(self.TEST_SITE, self.test_bot) @classmethod def tearDownClass(self): self.social_center.logout(self.TEST_SITE) self.social_center.remove_site(self.TEST_SITE) del self.social_center del self.test_bot def test_cannot_post_while_logged_out(self): title = "Test title" content = "Test content" link = "Test link" self.assertFalse(self.social_center.is_logged_in(self.TEST_SITE)) logged_out_valid_results = self.social_center.publish(title, content, link) logged_out_invalid_results = self.social_center.publish(None, None, None) # Results are always returned self.assertTrue(logged_out_valid_results) self.assertTrue(logged_out_invalid_results) self.assertIn(self.TEST_SITE, logged_out_valid_results) valid_result = logged_out_valid_results[self.TEST_SITE] self.assertNotIn("title", valid_result) self.assertFalse(valid_result["logged_in"]) self.assertIn(self.TEST_SITE, logged_out_invalid_results) invalid_result = logged_out_invalid_results[self.TEST_SITE] self.assertNotIn("title", valid_result) self.assertFalse(valid_result["logged_in"]) def test_can_post_while_logged_in(self): title = "Test title" content = "Test content" link = "Test link" self.social_center.authenticate(self.TEST_SITE, "main_token", "sub_token") #import pdb; pdb.set_trace() logged_in_valid_results = self.social_center.publish(title, content, link) logged_in_invalid_results = self.social_center.publish(None, None, None) # Results are always returned self.assertTrue(logged_in_valid_results) self.assertTrue(logged_in_invalid_results) self.assertIn(self.TEST_SITE, logged_in_valid_results) valid_result = logged_in_valid_results[self.TEST_SITE] self.assertNotIn("error", valid_result) self.assertEqual(valid_result["title"], title) self.assertEqual(valid_result["content"], content) self.assertEqual(valid_result["link"], link) self.assertIn(self.TEST_SITE, logged_in_invalid_results) invalid_result = logged_in_invalid_results[self.TEST_SITE] self.assertIn("error", invalid_result)
class SocialCenterPublishStubTestCase(TestCase): """Test Case 6: Social Center Must Publish Posts on Stub """ TEST_SITE = "test" @classmethod def setUpClass(self): self.test_bot = TestBot() self.social_center = SocialCenter() self.social_center.add_site(self.TEST_SITE, self.test_bot) @classmethod def tearDownClass(self): self.social_center.logout(self.TEST_SITE) self.social_center.remove_site(self.TEST_SITE) del self.social_center del self.test_bot def test_cannot_post_while_logged_out(self): title = "Test title" content = "Test content" link = "Test link" self.assertFalse(self.social_center.is_logged_in(self.TEST_SITE)) logged_out_valid_results = self.social_center.publish( title, content, link) logged_out_invalid_results = self.social_center.publish( None, None, None) # Results are always returned self.assertTrue(logged_out_valid_results) self.assertTrue(logged_out_invalid_results) self.assertIn(self.TEST_SITE, logged_out_valid_results) valid_result = logged_out_valid_results[self.TEST_SITE] self.assertNotIn("title", valid_result) self.assertFalse(valid_result["logged_in"]) self.assertIn(self.TEST_SITE, logged_out_invalid_results) invalid_result = logged_out_invalid_results[self.TEST_SITE] self.assertNotIn("title", valid_result) self.assertFalse(valid_result["logged_in"]) def test_can_post_while_logged_in(self): title = "Test title" content = "Test content" link = "Test link" self.social_center.authenticate(self.TEST_SITE, "main_token", "sub_token") #import pdb; pdb.set_trace() logged_in_valid_results = self.social_center.publish( title, content, link) logged_in_invalid_results = self.social_center.publish( None, None, None) # Results are always returned self.assertTrue(logged_in_valid_results) self.assertTrue(logged_in_invalid_results) self.assertIn(self.TEST_SITE, logged_in_valid_results) valid_result = logged_in_valid_results[self.TEST_SITE] self.assertNotIn("error", valid_result) self.assertEqual(valid_result["title"], title) self.assertEqual(valid_result["content"], content) self.assertEqual(valid_result["link"], link) self.assertIn(self.TEST_SITE, logged_in_invalid_results) invalid_result = logged_in_invalid_results[self.TEST_SITE] self.assertIn("error", invalid_result)
class SocialCenterAuthTestCase(TestCase): """Test Case 4: Social Center Must Authenticate Stub """ TEST_SITE = "test" @classmethod def setUpClass(self): self.test_bot = TestBot() self.social_center = SocialCenter() self.social_center.add_site(self.TEST_SITE, self.test_bot) @classmethod def tearDownClass(self): self.social_center.logout(self.TEST_SITE) self.social_center.remove_site(self.TEST_SITE) del self.social_center del self.test_bot def test_case(self): self.is_initially_logged_out() self.can_start_auth() self.can_process_client_token() self.can_authenticate() def is_initially_logged_out(self): self.assertFalse(self.social_center.is_logged_in(self.TEST_SITE)) def can_start_auth(self): callback_url = "http://testapp.com/" redirect_url, auth_data = self.social_center.start_authentication(self.TEST_SITE, callback_url) self.assertEqual(redirect_url, "http://test.com/auth?redirect_uri=%s" % urllib.quote_plus(callback_url)) self.assertEqual(auth_data["session_token"], self.test_bot._session_token) self.assertEqual(auth_data["callback_url"], callback_url) def can_process_client_token(self): callback_url = "http://testapp2.com/" redirect_url, auth_data = self.social_center.start_authentication(self.TEST_SITE, callback_url) self.assertRaises(Exception, self.social_center.process_client_token, None) self.assertRaises(Exception, self.social_center.process_client_token, {}) self.assertRaises(Exception, self.social_center.process_client_token, { "callback_url" : callback_url }) invalid_result = self.social_center.process_client_token(self.TEST_SITE, "invalid_code", auth_data) self.assertNotIn("main_token", invalid_result) self.assertIn("error", invalid_result) modified_data = auth_data.copy() modified_data["session_token"] = "invalidSessionToken" modified_result = self.social_center.process_client_token(self.TEST_SITE, self.test_bot._valid_client_token, modified_data) self.assertNotIn("main_token", modified_result) self.assertIn("error", modified_result) valid_result = self.social_center.process_client_token(self.TEST_SITE, self.test_bot._valid_client_token, auth_data) self.assertIn("main_token", valid_result) self.assertNotIn("error", valid_result) def can_authenticate(self): self.social_center.authenticate(self.TEST_SITE, "test_main_token", "test_sub_token") self.assertEqual(self.test_bot.main_token, "test_main_token") self.assertEqual(self.test_bot.sub_token, "test_sub_token") self.assertTrue(self.social_center.is_logged_in(self.TEST_SITE))
class SocialCenterAuthTestCase(TestCase): """Test Case 4: Social Center Must Authenticate Stub """ TEST_SITE = "test" @classmethod def setUpClass(self): self.test_bot = TestBot() self.social_center = SocialCenter() self.social_center.add_site(self.TEST_SITE, self.test_bot) @classmethod def tearDownClass(self): self.social_center.logout(self.TEST_SITE) self.social_center.remove_site(self.TEST_SITE) del self.social_center del self.test_bot def test_case(self): self.is_initially_logged_out() self.can_start_auth() self.can_process_client_token() self.can_authenticate() def is_initially_logged_out(self): self.assertFalse(self.social_center.is_logged_in(self.TEST_SITE)) def can_start_auth(self): callback_url = "http://testapp.com/" redirect_url, auth_data = self.social_center.start_authentication( self.TEST_SITE, callback_url) self.assertEqual( redirect_url, "http://test.com/auth?redirect_uri=%s" % urllib.quote_plus(callback_url)) self.assertEqual(auth_data["session_token"], self.test_bot._session_token) self.assertEqual(auth_data["callback_url"], callback_url) def can_process_client_token(self): callback_url = "http://testapp2.com/" redirect_url, auth_data = self.social_center.start_authentication( self.TEST_SITE, callback_url) self.assertRaises(Exception, self.social_center.process_client_token, None) self.assertRaises(Exception, self.social_center.process_client_token, {}) self.assertRaises(Exception, self.social_center.process_client_token, {"callback_url": callback_url}) invalid_result = self.social_center.process_client_token( self.TEST_SITE, "invalid_code", auth_data) self.assertNotIn("main_token", invalid_result) self.assertIn("error", invalid_result) modified_data = auth_data.copy() modified_data["session_token"] = "invalidSessionToken" modified_result = self.social_center.process_client_token( self.TEST_SITE, self.test_bot._valid_client_token, modified_data) self.assertNotIn("main_token", modified_result) self.assertIn("error", modified_result) valid_result = self.social_center.process_client_token( self.TEST_SITE, self.test_bot._valid_client_token, auth_data) self.assertIn("main_token", valid_result) self.assertNotIn("error", valid_result) def can_authenticate(self): self.social_center.authenticate(self.TEST_SITE, "test_main_token", "test_sub_token") self.assertEqual(self.test_bot.main_token, "test_main_token") self.assertEqual(self.test_bot.sub_token, "test_sub_token") self.assertTrue(self.social_center.is_logged_in(self.TEST_SITE))