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})
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})
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)