Notebooks >> Scripts
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

51 lines
1.5 KiB

from scrape_linkedin import utils as u
import bs4
from bs4 import BeautifulSoup as BS
from os import path
file_path = path.abspath(__file__)
DIR = path.dirname(file_path)
with open(path.join(DIR, 'html_files/profile.html'), 'r') as f1, open(path.join(DIR, 'test.html'), 'r') as f2:
profile_soup = BS(f1.read(), 'html.parser')
basic_soup = BS(f2.read(), 'html.parser')
def test_split_lists():
lst = [1, 2, 3, 4, 5, 6]
assert(u.split_lists(lst, 3) == [[1, 2], [3, 4], [5, 6]])
assert(u.split_lists(lst, 4) == [[1, 2], [3, 4], [5], [6]])
def test_all_or_default():
assert u.all_or_default(profile_soup, '.asjdksjaldjsklajdksaldas') == []
assert u.all_or_default(
profile_soup, '.fjdskalfjdsalfs', default=None) == None
assert len(u.all_or_default(basic_soup, '.test1')) == 2
assert u.all_or_default(None, '.test1') == []
def test_text_or_default():
assert u.text_or_default(basic_soup, '.asdf') == None
assert u.text_or_default(basic_soup, '.1') == 'Test'
def test_one_or_default():
el = u.one_or_default(basic_soup, '.test1')
assert isinstance(el, bs4.element.Tag)
el = u.one_or_default(basic_soup, '.asdfgh', default='')
assert el == ''
def test_get_info():
mapping = {
'name': '.test1',
'value': '.asdfg'
}
default = None
output = u.get_info(basic_soup, mapping)
expected_output = {}
for key, selector in mapping.items():
expected_output[key] = u.text_or_default(
basic_soup, selector, default=default)
assert output == expected_output