def test_not_emails(): for value in [ "foobar", # just a string "root@localhost", # domain part must include a . "foo@[email protected]", # more than one @ sign ]: assert None is render_cell(value, None, None, None, Datasette([]))
def test_settings_disable(): metadata = { "databases": { "mydatabase": { "tables": { "mytable": { "plugins": { "datasette-mailto-links": { "columns": [], } } } } } } } datasette = Datasette([], metadata=metadata) assert None is render_cell("*****@*****.**", "email", "mytable", "mydatabase", datasette) markup = render_cell("*****@*****.**", "email", "some_other_table", "mydatabase", datasette) assert str(markup).startswith('<a href="mailto:')
def test_emails(): for value in [ "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", ]: markup = render_cell(value, None, None, None, Datasette([])) assert str(markup).startswith('<a href="mailto:')
def test_not_strings(): for value in [None, 1, False, 23.9, -7]: assert None is render_cell(value, None, None, None, Datasette([]))
def test_escaping(): markup = render_cell("foo@<script>alert('XSS');</script>.bar", None, None, None, Datasette([])) assert None is not markup assert "<script>" not in str(markup)