Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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))
Ejemplo n.º 4
0
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))