mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-01-22 10:53:03 -08:00
467ae352f5
* Bump beautifulsoup4 from 4.10.0 to 4.11.1 Bumps [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) from 4.10.0 to 4.11.1. --- updated-dependencies: - dependency-name: beautifulsoup4 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Update beautifulsoup4==4.11.1 * Update soupsieve==2.3.2.post1 * Update requirements.txt Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> [skip ci]
75 lines
2.3 KiB
Python
75 lines
2.3 KiB
Python
"""Tests of classes in element.py.
|
|
|
|
The really big classes -- Tag, PageElement, and NavigableString --
|
|
are tested in separate files.
|
|
"""
|
|
|
|
from bs4.element import (
|
|
CharsetMetaAttributeValue,
|
|
ContentMetaAttributeValue,
|
|
NamespacedAttribute,
|
|
)
|
|
from . import SoupTest
|
|
|
|
|
|
class TestNamedspacedAttribute(object):
|
|
|
|
def test_name_may_be_none_or_missing(self):
|
|
a = NamespacedAttribute("xmlns", None)
|
|
assert a == "xmlns"
|
|
|
|
a = NamespacedAttribute("xmlns", "")
|
|
assert a == "xmlns"
|
|
|
|
a = NamespacedAttribute("xmlns")
|
|
assert a == "xmlns"
|
|
|
|
def test_namespace_may_be_none_or_missing(self):
|
|
a = NamespacedAttribute(None, "tag")
|
|
assert a == "tag"
|
|
|
|
a = NamespacedAttribute("", "tag")
|
|
assert a == "tag"
|
|
|
|
def test_attribute_is_equivalent_to_colon_separated_string(self):
|
|
a = NamespacedAttribute("a", "b")
|
|
assert "a:b" == a
|
|
|
|
def test_attributes_are_equivalent_if_prefix_and_name_identical(self):
|
|
a = NamespacedAttribute("a", "b", "c")
|
|
b = NamespacedAttribute("a", "b", "c")
|
|
assert a == b
|
|
|
|
# The actual namespace is not considered.
|
|
c = NamespacedAttribute("a", "b", None)
|
|
assert a == c
|
|
|
|
# But name and prefix are important.
|
|
d = NamespacedAttribute("a", "z", "c")
|
|
assert a != d
|
|
|
|
e = NamespacedAttribute("z", "b", "c")
|
|
assert a != e
|
|
|
|
|
|
class TestAttributeValueWithCharsetSubstitution(object):
|
|
"""Certain attributes are designed to have the charset of the
|
|
final document substituted into their value.
|
|
"""
|
|
|
|
def test_content_meta_attribute_value(self):
|
|
# The value of a CharsetMetaAttributeValue is whatever
|
|
# encoding the string is in.
|
|
value = CharsetMetaAttributeValue("euc-jp")
|
|
assert "euc-jp" == value
|
|
assert "euc-jp" == value.original_value
|
|
assert "utf8" == value.encode("utf8")
|
|
assert "ascii" == value.encode("ascii")
|
|
|
|
def test_content_meta_attribute_value(self):
|
|
value = ContentMetaAttributeValue("text/html; charset=euc-jp")
|
|
assert "text/html; charset=euc-jp" == value
|
|
assert "text/html; charset=euc-jp" == value.original_value
|
|
assert "text/html; charset=utf8" == value.encode("utf8")
|
|
assert "text/html; charset=ascii" == value.encode("ascii")
|