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)
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
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
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
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
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_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
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_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()
# -*- 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()