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')
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
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
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
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
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
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
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.'
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.'
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
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.'
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.'
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.'
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.'
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.'
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.'