[fix] selenium tests
This commit is contained in:
parent
f0cd97e257
commit
28115c0273
5 changed files with 47 additions and 32 deletions
|
|
@ -6,10 +6,15 @@ python:
|
|||
services:
|
||||
- mysql
|
||||
|
||||
before_install:
|
||||
- "export DISPLAY=:99.0"
|
||||
- "sh -e /etc/init.d/xvfb start"
|
||||
|
||||
install:
|
||||
- sudo apt-get purge -y mysql-common
|
||||
- wget https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh
|
||||
- sudo bash setup_frappe.sh --skip-setup-bench --mysql-root-password travis
|
||||
- sudo pip install --upgrade pip
|
||||
- sudo service redis-server start
|
||||
- rm $TRAVIS_BUILD_DIR/.git/shallow
|
||||
- cd ~/ && bench init frappe-bench --frappe-path $TRAVIS_BUILD_DIR
|
||||
|
|
@ -23,7 +28,7 @@ script:
|
|||
- bench build-website
|
||||
- bench serve &
|
||||
- sleep 10
|
||||
- bench --verbose run-tests
|
||||
- bench --verbose run-tests --driver Firefox
|
||||
|
||||
before_script:
|
||||
- mysql -e 'create database test_frappe'
|
||||
|
|
|
|||
|
|
@ -85,20 +85,23 @@ frappe.views.moduleview.ModuleView = Class.extend({
|
|||
.appendTo(this.page.main);
|
||||
|
||||
$(this.sections[name]).find(".module-item").each(function(i, mi) {
|
||||
$(mi).on("click", function(event) {
|
||||
// if clicked on open notification!
|
||||
if (event.target.classList.contains("open-notification")) {
|
||||
var doctype = event.target.getAttribute("data-doctype");
|
||||
frappe.route_options = frappe.boot.notification_info.conditions[doctype];
|
||||
}
|
||||
var item = data.items[$(mi).attr("data-item-index")];
|
||||
if(item.type==="help") {
|
||||
frappe.help.show_video(item.youtube_id);
|
||||
return false;
|
||||
} else {
|
||||
frappe.set_route(me.get_route(item));
|
||||
}
|
||||
});
|
||||
var item = data.items[$(mi).attr("data-item-index")];
|
||||
$(mi)
|
||||
.attr("data-route", me.get_route(item).join("/"))
|
||||
.attr("data-label", item.name)
|
||||
.on("click", function(event) {
|
||||
// if clicked on open notification!
|
||||
if (event.target.classList.contains("open-notification")) {
|
||||
var doctype = event.target.getAttribute("data-doctype");
|
||||
frappe.route_options = frappe.boot.notification_info.conditions[doctype];
|
||||
}
|
||||
if(item.type==="help") {
|
||||
frappe.help.show_video(item.youtube_id);
|
||||
return false;
|
||||
} else {
|
||||
frappe.set_route(me.get_route(item));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,15 +9,12 @@ selenium_tests = True
|
|||
|
||||
class TestLogin(unittest.TestCase):
|
||||
def setUp(self):
|
||||
return
|
||||
sel.login()
|
||||
|
||||
def test_login(self):
|
||||
return
|
||||
self.assertEquals(sel._driver.current_url, sel.get_localhost() + "/desk")
|
||||
|
||||
def test_to_do(self):
|
||||
return # does not pass in travis ??
|
||||
sel.go_to_module("ToDo")
|
||||
sel.primary_action()
|
||||
sel.wait_for_page("Form/ToDo")
|
||||
|
|
@ -25,11 +22,3 @@ class TestLogin(unittest.TestCase):
|
|||
sel.primary_action()
|
||||
self.assertTrue(sel.wait_for_state("clean"))
|
||||
|
||||
# def test_material_request(self):
|
||||
# sel.new_doc("Stock", "Material Request")
|
||||
# sel.add_child("items")
|
||||
# sel.set_field("item_code", "_Test Item")
|
||||
# sel.set_field("schedule_date", "10-10-2014")
|
||||
# sel.primary_action()
|
||||
# sel.wait_for_state("clean")
|
||||
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ def login(wait_for_id="#page-desktop"):
|
|||
get(get_localhost() + "/login")
|
||||
wait("#login_email")
|
||||
set_input("#login_email", "Administrator")
|
||||
set_input("#login_password", "admin" + Keys.RETURN)
|
||||
set_input("#login_password", "admin", key=Keys.RETURN)
|
||||
wait(wait_for_id)
|
||||
logged_in = True
|
||||
|
||||
|
|
@ -86,7 +86,7 @@ def go_to_module(module_name, item=None):
|
|||
if item:
|
||||
elem = find('[data-label="{0}"]'.format(item))[0]
|
||||
elem.click()
|
||||
page = unquote(elem.get_attribute("href").split("#", 1)[1])
|
||||
page = elem.get_attribute("data-route")
|
||||
wait_for_page(page)
|
||||
|
||||
def new_doc(module, doctype):
|
||||
|
|
@ -98,13 +98,19 @@ def add_child(fieldname):
|
|||
find('[data-fieldname="{0}"] .grid-add-row'.format(fieldname))[0].click()
|
||||
wait('[data-fieldname="{0}"] .form-grid'.format(fieldname))
|
||||
|
||||
def done_add_child(fieldname):
|
||||
selector = '[data-fieldname="{0}"] .grid-row-open .btn-success'.format(fieldname)
|
||||
scroll_to(selector)
|
||||
wait_till_clickable(selector).click()
|
||||
|
||||
def find(selector, everywhere=False):
|
||||
if cur_route and not everywhere:
|
||||
selector = cur_route + " " + selector
|
||||
return _driver.find_elements_by_css_selector(selector)
|
||||
|
||||
def set_field(fieldname, value, fieldtype="input"):
|
||||
set_input('{0}[data-fieldname="{1}"]'.format(fieldtype, fieldname), value + Keys.TAB)
|
||||
selector = '{0}[data-fieldname="{1}"]'.format(fieldtype, fieldname)
|
||||
set_input(selector, value, key=Keys.TAB)
|
||||
wait_for_ajax()
|
||||
|
||||
def set_select(fieldname, value):
|
||||
|
|
@ -113,7 +119,9 @@ def set_select(fieldname, value):
|
|||
wait_for_ajax()
|
||||
|
||||
def primary_action():
|
||||
wait_till_visible(".page-actions .primary-action").click()
|
||||
selector = ".page-actions .primary-action"
|
||||
scroll_to(selector)
|
||||
wait_till_clickable(selector).click()
|
||||
wait_for_ajax()
|
||||
|
||||
def wait_for_page(name):
|
||||
|
|
@ -152,13 +160,22 @@ def wait(selector, everywhere=False):
|
|||
def get_wait():
|
||||
return WebDriverWait(_driver, 20)
|
||||
|
||||
def set_input(selector, text):
|
||||
def set_input(selector, text, key=None):
|
||||
elem = find(selector)[0]
|
||||
elem.clear()
|
||||
elem.send_keys(text)
|
||||
if key:
|
||||
time.sleep(1)
|
||||
elem.send_keys(key)
|
||||
if input_wait:
|
||||
time.sleep(input_wait)
|
||||
|
||||
def scroll_to(selector):
|
||||
execute_script("frappe.ui.scroll('{0}')".format(selector))
|
||||
|
||||
def execute_script(js):
|
||||
_driver.execute_script(js)
|
||||
|
||||
def close():
|
||||
global _driver, pipe
|
||||
if _driver:
|
||||
|
|
|
|||
|
|
@ -6,5 +6,6 @@
|
|||
"mail_login": "test@example.com",
|
||||
"mail_password": "test",
|
||||
"admin_password": "admin",
|
||||
"run_selenium_tests": 1
|
||||
"run_selenium_tests": 1,
|
||||
"host_name": "http://localhost:8000"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue