def making_vac_entries(conn, cur, columns_v, values_v, columns_c, values_c, columns_cm, values_cm): inf = [] entries = [] companies = bf.search(conn, cur, 'companies', columns_cm, values_cm) filiations = bf.search(conn, cur, 'filiations', columns_c, values_c) for fil in filiations: for comp in companies: if fil[1] == comp[0]: columns_v.append('idOfFil') values_v.append(fil[0]) inf.append( (fil[0], fil[2], comp[0], comp[2], comp[3], comp[4])) break vacancies = bf.search(conn, cur, 'vacancies', columns_v, values_v) if vacancies: for vac in vacancies: for i in inf: if vac[2] == i[0]: entry = (vac[0], vac[1], i[1], vac[3], vac[4], vac[5], i[2], i[3], i[4], i[5]) entries.append(entry) break header = [ ' ID ', ' Профессия ', ' Город ', 'Занятость', 'Зарплата', ' Опыт ', ' Название ', ' Сайт ', ' Электронная ', 'Есть ли ', '\n', 'вакансии', ' ', ' ', ' ', ' ', ' работы ', ' компании ', ' ', ' почта ', 'практика' ] render(entries, header)
def registration(conn, cur, table): if table.name == 'companies': while True: login = input( 'Введите название компании (далее оно будет использоваться как ваш логин для входа в систему): ' ) if not bf.search(conn, cur, 'companies', ['login'], [login]): while True: password = input('Придумайте восьмизначный пароль: ') if len(password) == 8: return login, password else: print('В пароле должно быть 8 символов!') else: print('Компания с таким названием уже существует.') else: while True: login = input('Придумайте логин: ') if not bf.search(conn, cur, 'users', ['login'], [login]): while True: password = input('Придумайте восьмизначный пароль: ') if len(password) == 8: return login, password else: print('В пароле должно быть 8 символов!') else: print('Пользователь с таким логином уже существует.')
def test_ordering(): searchphrase = 'Fizyka dla grafików komputerowych' browser = webdriver.Firefox() browser.get(basefunc.BASEURL) basefunc.login(browser, 'id', 'pass') time.sleep(2) basefunc.goToMainPage(browser) time.sleep(2) basefunc.search(browser, searchphrase) time.sleep(2) basefunc.getFirstBook(browser, searchphrase) time.sleep(2) basefunc.identifyBook(browser, searchphrase) basefunc.orderFirstCopy(browser, searchphrase) #walidacja/weryfikacja? my_account = browser.find_element_by_css_selector( "#primary-nav > li:nth-child(1) > a") my_account.click() my_orders = browser.find_element_by_css_selector("#ui-id-2") my_orders.click() #start = datetime.datetime.now() current_order = browser.find_element_by_xpath( "/html/body/div/div[2]/div[5]/div[3]/div[2]/form/table/tbody/tr[3]/td[1]/a" ).text assert searchphrase in current_order basefunc.logout(browser) browser.quit()
def search_vacs_of_comp(conn, cur, name): fils = bf.search(conn, cur, 'filiations', ['nameOfComp'], [name]) if fils: columns = [] values = [] for fil in fils: columns.append('idOfFil') values.append(fil[0]) res = bf.search(conn, cur, 'vacancies', columns, values) return res
def test_searchWithoutLog(): browser = webdriver.Firefox() browser.get(basefunc.BASEURL) basefunc.search(browser, searchphrase) time.sleep(2) basefunc.getFirstBook(browser, searchphrase) time.sleep(2) basefunc.identifyBook(browser, searchphrase) basefunc.logout(browser) browser.quit()
def test_searchWithFilter(): browser = webdriver.Firefox() browser.get(basefunc.BASEURL) basefunc.search(browser, searchphrase) time.sleep(2) browser.find_element_by_partial_link_text("Nagranie dźwiękowe").click() time.sleep(1) browser.find_element_by_xpath( "/html/body/div/div[2]/div[5]/div[3]/form/span/ul/li/div[2]/div[1]/a[1]" ).click() title_elem = browser.find_element_by_class_name('title').text assert filter_searchphrase in title_elem browser.quit()
def test_searchWithLog(): browser = webdriver.Firefox() browser.get(basefunc.BASEURL) basefunc.login(browser, 'id', 'pass') time.sleep(2) basefunc.goToMainPage(browser) time.sleep(2) basefunc.search(browser, searchphrase) time.sleep(2) basefunc.getFirstBook(browser, searchphrase) time.sleep(2) basefunc.identifyBook(browser, searchphrase) browser.quit()
def view_fil(conn, cur, name): res = bf.search(conn, cur, 'filiations', ['nameOfComp'], [name]) hf.render(res, filiations.header) answer = input('Хотите редактировать данные филиалов? (да/нет)\n') print('') if answer == 'да': return edit_fil(conn, cur, name) return menu_for_comp(conn, cur, name)
def authorization(conn, cur, table): while True: print('Введите данные') login = input('Логин: ') password = input('Пароль: ') if not login or not password: print('Неверный ввод логина или пароля') else: if not bf.search(conn, cur, table.name, ['login', 'password'], [login, password]): print('Неверный ввод логина или пароля') else: return login
def making_res_entries(conn, cur, columns_u, values_u, columns_r, values_r): entries = [] users = bf.search(conn, cur, 'users', columns_u, values_u) for user in users: columns_r.append('login') values_r.append(user[0]) if columns_r and values_r: resumes = bf.search(conn, cur, 'resumes', columns_r, values_r) if resumes: for resume in resumes: user = bf.search(conn, cur, 'users', ['login'], [resume[1]]) user = user[0] entry = (resume[0], user[2], user[3], user[4], user[5], user[6], resume[2], resume[3], resume[4], resume[5]) entries.append(entry) header = [ ' ID ', ' Имя ', ' Фамилия ', ' Номер ', ' Город ', ' Статус ', ' Профессия ', ' Опыт ', 'Занятость', 'Нужна ли', '\n', 'резюме', ' ', ' ', ' телефона ', ' ', ' ', ' ', ' работы ', ' ', 'практика' ] render(entries, header)
def view_resume(conn, cur, login): res = bf.search(conn, cur, 'resumes', ['login'], [login]) hf.render(res, resumes.header) while True: print('Выберите дальнешее действие:') print('1. Изменить имеющееся резюме') print('2. Удалить имеющееся резюме') print('3. Вернутся в главное меню') num = input('Введите пункт меню: ') print('') if num == '1': uf.change_resume(conn, cur) elif num == '2': uf.delete_resume(conn, cur) elif num == '3': return menu_for_st(conn, cur, login) else: print('Такого пункта в меню нет.\n')
def search_id(conn, cur, table): res = bf.search(conn, cur, table, [], []) return len(res) + 1