Ejemplo n.º 1
0
def post_create(request):
    # todo isPublished affects
    """
    Render and process a form to add a Post.
    """
    # Check permission
    if not can_create_post(request.user):
        return render(request, "main/no_permission.html")

    if not (request.POST or request.GET):
        form = PostCreateForm()
        return render(request, "post/post_create.html", {"form": form})
    else:
        # Form POST request is submitted
        if request.POST:
            form = PostCreateForm(request.POST)
        else:
            form = PostCreateForm(request.GET)
        if form.is_valid():
            print "form valid"
            model_instance = form.save(commit=False)
            model_instance.created_by_id = request.user.id
            model_instance.created_at = timezone.now()
            model_instance.save()
            # Although isPublished = false, it still shared on facebook
            social_center = SocialCenter()
            social_center.publish(
                model_instance.title,
                model_instance.content,
                request.build_absolute_uri("/post/post_retrieve/%d" % model_instance.id),
            )
            return redirect("/post/post_retrieve/%d/" % model_instance.id)
        else:
            return render(request, "post/post_create.html", {"form": form})
Ejemplo n.º 2
0
def post_create(request):
    #todo isPublished affects
    """
    Render and process a form to add a Post.
    """
    #Check permission
    if not can_create_post(request.user):
        return render(request, "main/no_permission.html")

    if not (request.POST or request.GET):
        form = PostCreateForm()
        return render(request, 'post/post_create.html', {'form': form})
    else:
        #Form POST request is submitted
        if request.POST:
            form = PostCreateForm(request.POST)
        else:
            form = PostCreateForm(request.GET)
        if form.is_valid():
            print "form valid"
            model_instance = form.save(commit=False)
            model_instance.created_by_id = request.user.id
            model_instance.created_at = timezone.now()
            model_instance.save()
            #Although isPublished = false, it still shared on facebook
            social_center = SocialCenter()
            social_center.publish(
                model_instance.title, model_instance.content,
                request.build_absolute_uri("/post/post_retrieve/%d" %
                                           model_instance.id))
            return redirect("/post/post_retrieve/%d/" % model_instance.id)
        else:
            return render(request, 'post/post_create.html', {'form': form})
Ejemplo n.º 3
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.º 4
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)