def test_no_html(self): ''' just text ''' input_text = 'no html ' parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual(input_text, output)
def test_valid_html(self): ''' leave the html untouched ''' input_text = '<b>yes </b> <i>html</i>' parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual(input_text, output)
def test_disallowed_html(self): ''' remove disallowed html but keep allowed html ''' input_text = '<div> yes <i>html</i></div>' parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual(' yes <i>html</i>', output)
def test_valid_html_attrs(self): ''' and don't remove attributes ''' input_text = '<a href="fish.com">yes </a> <i>html</i>' parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual(input_text, output)
def test_no_html(self): """ just text """ input_text = "no html " parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual(input_text, output)
def test_disallowed_html(self): """ remove disallowed html but keep allowed html """ input_text = "<div> yes <i>html</i></div>" parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual(" yes <i>html</i>", output)
def test_valid_html_invalid_attrs(self): """do remove un-approved attributes""" input_text = '<a href="fish.com" fish="hello">yes </a> <i>html</i>' parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual(output, '<a href="fish.com">yes </a> <i>html</i>')
def to_markdown(content): """catch links and convert to markdown""" content = markdown(content) content = format_links(content) # sanitize resulting html sanitizer = InputHtmlParser() sanitizer.feed(content) return sanitizer.get_output()
def test_invalid_html(self): input_text = '<b>yes <i>html</i>' parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual('yes html', output) input_text = 'yes <i></b>html </i>' parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual('yes html ', output)
def test_invalid_html(self): ''' remove all html when the html is malformed ''' input_text = '<b>yes <i>html</i>' parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual('yes html', output) input_text = 'yes <i></b>html </i>' parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual('yes html ', output)
def test_invalid_html(self): """ remove all html when the html is malformed """ input_text = "<b>yes <i>html</i>" parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual("yes html", output) input_text = "yes <i></b>html </i>" parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual("yes html ", output)
def create_generated_note(user, content, mention_books=None, privacy='public'): ''' a note created by the app about user activity ''' # sanitize input html parser = InputHtmlParser() parser.feed(content) content = parser.get_output() status = models.GeneratedNote.objects.create(user=user, content=content, privacy=privacy) if mention_books: for book in mention_books: status.mention_books.add(book) return status
def create_generated_note(user, content, mention_books=None, privacy="public"): """a note created by the app about user activity""" # sanitize input html parser = InputHtmlParser() parser.feed(content) content = parser.get_output() with transaction.atomic(): # create but don't save status = models.GeneratedNote(user=user, content=content, privacy=privacy) # we have to save it to set the related fields, but hold off on telling # folks about it because it is not ready status.save(broadcast=False) if mention_books: status.mention_books.set(mention_books) status.save(created=True) return status
def field_from_activity(self, value): if not value or value == MISSING: return None sanitizer = InputHtmlParser() sanitizer.feed(value) return sanitizer.get_output()