forked from mrlan/EnglishPal
				
			Fix bug 518 and added test script
						commit
						4b6342cf3e
					
				| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Subproject commit 8cbc7c9a0ce543db48f80a743c4168ca847ca500
 | 
			
		||||
| 
						 | 
				
			
			@ -232,6 +232,7 @@
 | 
			
		|||
                    update(data['today_article']);
 | 
			
		||||
                    check_pre(data['visited_articles']);
 | 
			
		||||
                    check_next(data['result_of_generate_article']);
 | 
			
		||||
                    toggleHighlighting();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
| 
						 | 
				
			
			@ -245,6 +246,7 @@
 | 
			
		|||
                if(data['today_article']){
 | 
			
		||||
                    update(data['today_article']);
 | 
			
		||||
                    check_pre(data['visited_articles']);
 | 
			
		||||
                    toggleHighlighting();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,24 +12,5 @@ def URL():
 | 
			
		|||
 | 
			
		||||
@pytest.fixture
 | 
			
		||||
def driver():
 | 
			
		||||
    return webdriver.Edge()  # follow the "End-to-end testing" section in README.md to install the web driver executable
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture
 | 
			
		||||
def restore_sqlite_database():
 | 
			
		||||
    '''
 | 
			
		||||
    Automatically restore SQLite database file app/db/wordfreqapp.db
 | 
			
		||||
    using SQL statements from app/static/wordfreqapp.sql
 | 
			
		||||
    '''
 | 
			
		||||
    con = sqlite3.connect('../db/wordfreqapp.db')
 | 
			
		||||
    with con:
 | 
			
		||||
        con.executescript('DROP TABLE IF EXISTS user;')
 | 
			
		||||
        con.executescript('DROP TABLE IF EXISTS article;')
 | 
			
		||||
        con.executescript(open('../static/wordfreqapp.sql', encoding='utf8').read())
 | 
			
		||||
    con.close()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture(autouse=True)
 | 
			
		||||
def restart_englishpal(restore_sqlite_database):
 | 
			
		||||
    (Path(__file__).parent / '../main.py').touch()
 | 
			
		||||
    time.sleep(1)
 | 
			
		||||
    my_driver = webdriver.Chrome()
 | 
			
		||||
    return my_driver
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,43 @@
 | 
			
		|||
import time
 | 
			
		||||
import pytest
 | 
			
		||||
import uuid
 | 
			
		||||
from selenium import webdriver
 | 
			
		||||
from selenium.webdriver import ActionChains
 | 
			
		||||
from selenium.webdriver.common.by import By
 | 
			
		||||
from selenium.webdriver.support.ui import WebDriverWait
 | 
			
		||||
from selenium.webdriver.support import expected_conditions as EC
 | 
			
		||||
from selenium.common.exceptions import UnexpectedAlertPresentException, NoAlertPresentException, NoSuchElementException, \
 | 
			
		||||
    TimeoutException
 | 
			
		||||
from conftest import URL
 | 
			
		||||
driver = webdriver.Chrome()
 | 
			
		||||
def test_bug555():
 | 
			
		||||
    try:
 | 
			
		||||
        driver.maximize_window()
 | 
			
		||||
        base_url = "http://127.0.0.1:5000"
 | 
			
		||||
        driver.get(base_url)
 | 
			
		||||
        article = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'article')))
 | 
			
		||||
        perform_actions_on_article(driver, article)
 | 
			
		||||
 | 
			
		||||
        next_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'load_next_article')))
 | 
			
		||||
        next_button.click()
 | 
			
		||||
        print("Clicked next article button.")
 | 
			
		||||
 | 
			
		||||
        prev_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'load_pre_article')))
 | 
			
		||||
        prev_button.click()
 | 
			
		||||
        print("Clicked previous article button.")
 | 
			
		||||
 | 
			
		||||
    except (TimeoutException, NoSuchElementException) as e:
 | 
			
		||||
        print(f"An error occurred: {e}")
 | 
			
		||||
 | 
			
		||||
    finally:
 | 
			
		||||
        driver.quit()
 | 
			
		||||
        print("Driver closed.")
 | 
			
		||||
 | 
			
		||||
def perform_actions_on_article(driver, article):
 | 
			
		||||
    actions = ActionChains(driver)
 | 
			
		||||
    actions.move_to_element(article)
 | 
			
		||||
    actions.click_and_hold()
 | 
			
		||||
    actions.move_by_offset(450, 200)
 | 
			
		||||
    actions.release()
 | 
			
		||||
    actions.perform()
 | 
			
		||||
    print("Performed actions on article.")
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 20 KiB  | 
		Loading…
	
		Reference in New Issue