예제 #1
0
 def handle_starttag(self, tag, attrs):
     html, attrs = html_starttag_and_attrs(tag, attrs)
     if tag == self.tag and match(self.attrs, attrs) and not self.count:
         self.count += 1
         self.group += 1
         self.groups.append(Soup(''))
         self.groups[self.group - 1].html += html
         self.groups[self.group - 1].tag = tag
         self.groups[self.group - 1].attrs = attrs
         return
     if self.count:
         self.count += 1
         self.groups[self.group - 1].html += html
         return
     else:
         return
예제 #2
0
def test_match_partial():
    a = {"foo": "bar"}
    b = {"foo": "bar baz"}
    assert match(a, b, partial=True)
예제 #3
0
def test_match_empty_attrs_fail():
    a = {"foo": "bar"}
    b = {}
    assert not match(a, b)
예제 #4
0
def test_match_empty_empty():
    a = {}
    b = {}
    assert match(a, b)
예제 #5
0
def test_attr_match_query_empty():
    a = {}
    b = {"foo": "bar"}
    assert match(a, b)
예제 #6
0
def test_attr_match_query_empty():
    a = {}
    b = {"foo": "bar"}
    if not match(a, b):
        raise AssertionError
예제 #7
0
def test_multiple_partial_fail():
    a = {"foo1": "bar1", "foo2": "bar2"}
    b = {"foo1": "bar1 baz1", "foo2": "bar2"}
    assert not match(a, b, partial=False)
예제 #8
0
def test_match_query_too_much_fail():
    a = {"foo1": "bar1 baz1", "foo2": "bar2"}
    b = {"foo1": "bar1", "foo2": "bar2"}
    assert not match(a, b)
예제 #9
0
def test_match_query_too_much_fail():
    a = {"foo1": "bar1 baz1", "foo2": "bar2"}
    b = {"foo1": "bar1", "foo2": "bar2"}
    if match(a, b):
        raise AssertionError
예제 #10
0
def test_match_multiple_fail():
    a = {"foo1": "bar1", "foo2": "bar2"}
    b = {"foo1": "bar1", "foo2": "baz1"}
    if match(a, b):
        raise AssertionError
예제 #11
0
def test_match_multiple():
    a = {"foo1": "bar1", "foo2": "bar2"}
    b = {"foo1": "bar1", "foo2": "bar2"}
    if not match(a, b):
        raise AssertionError
예제 #12
0
def test_match_partial():
    a = {"foo": "bar"}
    b = {"foo": "bar baz"}
    if not match(a, b, partial=True):
        raise AssertionError
예제 #13
0
def test_match_empty_attrs_fail():
    a = {"foo": "bar"}
    b = {}
    if match(a, b):
        raise AssertionError
예제 #14
0
def test_match_empty_empty():
    a = {}
    b = {}
    if not match(a, b):
        raise AssertionError
예제 #15
0
def test_match_multiple():
    a = {"foo1": "bar1", "foo2": "bar2"}
    b = {"foo1": "bar1", "foo2": "bar2"}
    assert match(a, b)
예제 #16
0
def test_match_multiple_fail():
    a = {"foo1": "bar1", "foo2": "bar2"}
    b = {"foo1": "bar1", "foo2": "baz1"}
    assert not match(a, b)
예제 #17
0
def test_match_multiple_partial():
    a = {"foo1": "bar1", "foo2": "bar2"}
    b = {"foo1": "bar1 baz1", "foo2": "bar2"}
    if not match(a, b, partial=True):
        raise AssertionError
예제 #18
0
def test_match_multiple_partial():
    a = {"foo1": "bar1", "foo2": "bar2"}
    b = {"foo1": "bar1 baz1", "foo2": "bar2"}
    assert match(a, b, partial=True)
예제 #19
0
def test_attr_match():
    a = {"foo": "bar"}
    b = {"foo": "bar"}
    if not match(a, b):
        raise AssertionError
예제 #20
0
def test_attr_match():
    a = {"foo": "bar"}
    b = {"foo": "bar"}
    assert match(a, b)
예제 #21
0
def test_multiple_partial_fail():
    a = {"foo1": "bar1", "foo2": "bar2"}
    b = {"foo1": "bar1 baz1", "foo2": "bar2"}
    if match(a, b, partial=False):
        raise AssertionError