示例#1
0
def main():
    # Load customer
    customers_file = os.path.join(settings.DATA_DIR, 'customers.csv')
    customers_data = loader.read_csv(file=customers_file)
    customers = loader.load_customers(customers=customers_data)
    customer = random.choice(customers)

    # Load proxy
    proxies_file = os.path.join(settings.DATA_DIR, 'proxies.csv')
    proxies_data = loader.read_csv(file=proxies_file)
    proxies = proxydata.load_proxies(proxies=proxies_data)
    proxy = random.choice(proxies)

    # Open browser
    browser_settings = {
        'user-agent': customer.get('user_agent'),
        'window-size': customer.get('resolution'),
        '--lang': customer.get('languages'),
        #'user-data-dir': 'SOME DIR',
        '--proxy-server': proxy.get('server'),
        '--log-level': 3,
        'disable-automation-extension': True,
        'password-manager': True,
        'extensions': []
    }
    options = chrome.create_options(**browser_settings)
    driver = chrome.create_driver(options=options)

    driver.get('https://amazon.com')
示例#2
0
def test_returns_connection_key_in_dict(mock_read_csv):
    data = loader.read_csv(file='some CSV file')
    proxies = proxydata.load_proxies(proxies=data)
    key = 'connection'
    for p in proxies:
        assert key in p, '%s not in response.' % key
        assert isinstance(p[key], DictProxy), '%s ins\'t a dict manager.' % key
示例#3
0
def test_returns_server_key_in_dict(mock_read_csv):
    data = loader.read_csv(file='some CSV file')
    proxies = proxydata.load_proxies(proxies=data)
    key = 'server'
    for p in proxies:
        assert key in p, '%s not in response.' % key
        assert isinstance(p[key], str), '%s ins\'t a string.' % key
示例#4
0
def create_sample_proxy():
    with mock.patch('robot.data.loader.read_csv') as mock_read_csv:
        mock_read_csv.return_value = PROXIES
        data = loader.read_csv('ANY CSV')
    proxy = proxydata.load_proxies(proxies=data)[0]

    return proxy
示例#5
0
def test_returns_refresh_time_key_in_dict(mock_read_csv):
    data = loader.read_csv(file='some CSV file')
    proxies = proxydata.load_proxies(proxies=data)
    key = 'refresh_time'
    for p in proxies:
        assert isinstance(p[key], int), '%s isn\'t an integer.' % key
        assert p[
            key] == settings.PROXY_REFRESH_TIME, '%s is not loaded following settings.' % key
示例#6
0
def test_returns_releases_key_in_dict(mock_read_csv):
    data = loader.read_csv(file='some CSV file')
    proxies = proxydata.load_proxies(proxies=data)
    key = 'releases'
    for p in proxies:
        assert key in p, '%s not in response.' % key
        assert isinstance(p[key], int), '%s ins\'t a integer.' % key
        assert p[key] == 0, '%s is not loaded as ZERO.' % key
示例#7
0
def test_returns_event_keys_in_dict(mock_read_csv):
    data = loader.read_csv(file='some CSV file')
    proxies = proxydata.load_proxies(proxies=data)
    keys = ['available', 'change_ip', 'busy']
    for p in proxies:
        for k in keys:
            assert k in p, '%s not in response.' % k
            assert isinstance(p[k], EventProxy), '%s ins\'t a event.' % k
示例#8
0
def test_selects_option(mock_read_csv):
    # De-select a customer
    mock_data.CUSTOMERS[0]['select'] = ''
    mock_read_csv.return_value = mock_data.CUSTOMERS
    data = loader.read_csv(file='some CSV file')
    manager = loader.load_customers(customers=data)
    assert len(data) != len(
        manager), 'data and manager couldn\'t have same lenght.'
示例#9
0
def test_reads_all_columns():
    with mock.patch("builtins.open",
                    mock_open(read_data=in_mem_csv)) as mock_file:
        data = loader.read_csv('ANY CSV FILE')
        for d in data:
            assert isinstance(
                d, dict), 'return value isn\'t a list of dictionary.'
            assert len(d) == 3, 'not all columns were read.'
示例#10
0
def test_returns_last_change_key_in_dict(mock_read_csv):
    data = loader.read_csv(file='some CSV file')
    proxies = proxydata.load_proxies(proxies=data)
    key = 'last_change'
    for p in proxies:
        assert isinstance(p[key], dt), '%s isn\'t an datetime.' % key
示例#11
0
def test_returns_dict_inside_list_manager(mock_read_csv):
    data = loader.read_csv(file='some CSV file')
    proxies = proxydata.load_proxies(proxies=data)
    for p in proxies:
        assert isinstance(p, dict), 'It ins\'t a dict type.'
示例#12
0
def test_returns_list_manager(mock_read_csv):
    data = loader.read_csv(file='some CSV file')
    proxies = proxydata.load_proxies(proxies=data)
    assert isinstance(proxies, ListProxy), 'It isn\'t a list manager type.'
示例#13
0
def test_loads_all_data(mock_read_csv):
    data = loader.read_csv(file='some CSV file')
    proxies = proxydata.load_proxies(proxies=data)
    assert len(data) == len(proxies), 'Not all proxies were loaded.'
示例#14
0
def test_loads_all_data(mock_read_csv):
    data = loader.read_csv(file='some CSV file')
    manager = loader.load_customers(customers=data)
    assert len(data) == len(manager), 'data and manager must have same lenght.'
示例#15
0
def test_returns_managers(mock_read_csv):
    data = loader.read_csv(file='some CSV file')
    manager = loader.load_customers(customers=data)
    assert isinstance(manager, ListProxy), 'Main list isn\'t a manager type.'
    for p in manager:
        assert isinstance(p, DictProxy), 'Nested dicts aren\'t manager type.'
示例#16
0
def test_returns_list():
    with mock.patch("builtins.open",
                    mock_open(read_data=in_mem_csv)) as mock_file:
        data = loader.read_csv('ANY CSV FILE')
        assert isinstance(data, list), 'return value isn\'t a list.'
        assert len(data) == 3, 'not all rows were read.'