Exemple #1
0
def test_element_found_on_init():
    listener = Listener(document_path=TEST_DOCUMENT_0, query='#the-element')

    assert listener.element_str is None

    listener.mount()

    assert listener.element_str is not None
Exemple #2
0
def test_poll_change_not_changed():
    listener = Listener(document_path=TEST_DOCUMENT_0, query=CSS_QUERY)

    listener.mount()

    has_changed, element = listener.poll_change()

    assert has_changed is False
    assert element is not None
Exemple #3
0
def test_find_ugly_elements():
    for html in get_ugly_htmls():
        listener = Listener(document=html, query='#the-element', chrome=CHROME)

        listener.mount()

        assert listener.find_element() is not None

    if DISPLAY:
        DISPLAY.stop()

    if CHROME:
        CHROME.quit()
def test_write_element():
    listener = Listener(document_path=TEST_DOCUMENT_0, query='#the-element')

    listener.mount()

    listener.find_element()

    listener.write_element_str(listener.read_element_str())

    assert listener.element_str is not None
Exemple #5
0
def test_find_element():
    listener = Listener(document_path=TEST_DOCUMENT_0,
                        query='#the-element',
                        chrome=CHROME)

    listener.mount()

    assert listener.find_element() is not None

    listener = Listener(domain='http://example.org/',
                        query='h1',
                        chrome=CHROME)

    listener.mount()

    assert listener.find_element() is not None
def test_read_element():
    listener = Listener(document_path=TEST_DOCUMENT_0, query='#the-element')

    listener.mount()

    listener.find_element()

    assert isinstance(listener.read_element_str(), basestring)
Exemple #7
0
def test_element_found_on_init():
    listener = Listener(document_path=TEST_DOCUMENT_0,
                        query='#the-element',
                        read_element=read_element,
                        write_element=write_element)

    assert listener.read_element_str() is None

    listener.mount()

    assert listener.read_element_str() is not None

    changed, element = listener.poll_change()

    assert changed is False
    assert element is not None
Exemple #8
0
def test_poll_ugly_elements():
    ugly_htmls = list(get_ugly_htmls())
    index = 0

    listener = Listener(document=ugly_htmls[index], query='#the-element')
    listener.mount()
    index += 1

    for i in range(index, len(ugly_htmls)):
        listener.document = ugly_htmls[i]
        has_changed, element = listener.poll_change()

        assert has_changed is True
Exemple #9
0
def test_poll_change_changed():
    listener = Listener(document_path=TEST_DOCUMENT_0, query=CSS_QUERY)

    listener.mount()

    has_changed, element = listener.poll_change()

    assert has_changed is False
    assert element is not None

    htmlcontent = ''
    with open(TEST_DOCUMENT_0) as _file:
        htmlcontent = _file.read()
    _file.close()

    soup = BeautifulSoup(htmlcontent, 'html.parser')
    soup_elem = soup.select('#the-element')[0]

    soup_elem['data-changed'] = 1

    with open(TEST_DOCUMENT_0, 'w') as\
            _file:
        _file.write(str(soup))
    _file.close()

    has_changed, element = listener.poll_change()
    assert has_changed is True

    # write back old data to mock file
    htmlcontent = ''
    with open(TEST_DOCUMENT_0) as _file:
        htmlcontent = _file.read()
    _file.close()

    soup = BeautifulSoup(htmlcontent, 'html.parser')
    soup_elem = soup.select('#the-element')[0]

    del soup_elem['data-changed']

    with open(TEST_DOCUMENT_0, 'w') as\
            _file:
        _file.write(str(soup))
    _file.close()
from domeventlistener.listen import Listener
from domeventlistener.pool import ListenPool


# my event handler
def event_handler(event_type, data):
    print(event_type, data)


listener0 = Listener(domain='https://github.com/sebbekarlsson',
                     query='a[title="Stars"]',
                     event_handler=event_handler)

pool = ListenPool()

res = pool.deploy_listener(listener0)
from domeventlistener.listen import Listener


# my event handler
def event_handler(event_type, data):
    print(event_type, data)


listener = Listener('https://stackoverflow.com/questions', '#mainbar',
                    event_handler)

try:
    listener.start()
except KeyboardInterrupt():
    quit()
Exemple #12
0
# -*- coding: utf-8 -*-
from domeventlistener.listen import Listener
import sys

URL = sys.argv[1]
QUERY = sys.argv[2]


# my event handler
def event_handler(event_type, data):
    print('{} | {}, {}'.format(QUERY, event_type, data.encode('utf-8')))


listener = Listener(URL, QUERY, event_handler)

listener.mount()


def run():
    try:
        listener.run()
    except KeyboardInterrupt():
        quit()