Skip to content

Commit

Permalink
Test and coverage fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
mreiche committed Dec 14, 2024
1 parent 6b3469e commit f36b17c
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 8 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,9 @@ References: https://www.nextgenerationautomation.com/post/python-test-automation
## Developer area

### Testing
#### Run the tests on you local machine
#### Run the tests on your local machine
```shell
pytest --cov=paf -n=4 test
PAF_TEST_HEADLESS=1 PAF_TEST_LOCAL_SELENIUM=0 pytest --cov=paf -n=4 test
```

#### Build test base container (for use in GitHub Actions)
Expand Down
6 changes: 3 additions & 3 deletions paf/manager.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
from datetime import datetime
from pathlib import Path
from typing import Type, TypeVar, Iterable, List
from typing import Type, TypeVar, List

import inject
from is_empty import empty
import selenium.webdriver as webdriver
from is_empty import empty
from selenium.webdriver.common import service as webdriver_service
from selenium.webdriver import ChromeService, Chrome, Firefox, Edge, Safari, Remote, ChromeOptions, EdgeOptions, FirefoxOptions, WPEWebKitOptions
from selenium.webdriver.common.options import BaseOptions
from selenium.webdriver.remote.webdriver import WebDriver, BaseWebDriver

from paf.common import Property, Formatter
from paf.request import WebDriverRequest

Expand Down
2 changes: 1 addition & 1 deletion test/test_component.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def test_component_name_path(components_page: ComponentsPage):

def test_component_name(components_page: ComponentsPage):
component = components_page.custom_component.type
assert str(component) == "UiElement(By.id(input))[0]"
assert component.__str__() == "UiElement(By.id(input))[0]"


def test_component_list_name(components_page: ComponentsPage):
Expand Down
22 changes: 20 additions & 2 deletions test/test_javascript.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,35 @@
import inject

from paf.common import Size, Rect
from paf.javascript import get_viewport
import paf.javascript as javascript
from paf.manager import WebDriverManager
from paf.page import FinderPage
from paf.request import WebDriverRequest
from test import create_webdriver
from test import finder


def test_viewport():
request = WebDriverRequest()
request.browser = "chrome"
request.window_size = Size(1024, 768)
webdriver = create_webdriver(request)
viewport = get_viewport(webdriver)
viewport = javascript.get_viewport(webdriver)
assert isinstance(viewport, Rect)
assert viewport.top == 0
assert viewport.left == 0
assert viewport.width == 1024
assert viewport.height >= 600


def test_set_attribute(finder: FinderPage):
finder.open("https://testpages.herokuapp.com/styled/basic-web-page-test.html")
p = finder.find("#para1")
with p.find_web_element() as web_element:
javascript.set_attribute(p.webdriver, web_element, "data-katze", "affe")

p.expect.attribute("data-katze").be("affe")


def teardown_module():
inject.instance(WebDriverManager).shutdown_all()
2 changes: 2 additions & 0 deletions test/test_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,12 @@ def test_assertions(finder: FinderPage):

def test_create_page_from_page():
page_factory = inject.instance(PageFactory)
webdriver = create_webdriver(WebDriverRequest())
page = page_factory.create_page(Page)
other_page = page._create_page(Page)
assert isinstance(other_page, Page)
assert page.webdriver == other_page.webdriver
assert page.webdriver == webdriver


def test_create_page_without_webdriver():
Expand Down
21 changes: 21 additions & 0 deletions test/test_rect.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import inject

from paf.common import Point
from paf.manager import WebDriverManager
from paf.page import FinderPage
from test import finder


def test_rect(finder: FinderPage):
finder.open("https://testpages.herokuapp.com/styled/basic-web-page-test.html")
p = finder.find("#para1")
rect = p.expect.bounds.actual
point = Point(10, 20)
point.add(rect)

assert point.x > 10
assert point.y > 20


def teardown_module():
inject.instance(WebDriverManager).shutdown_all()
1 change: 1 addition & 0 deletions test/test_uielement.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def test_basics(finder: FinderPage):
assert p2.name == "UiElement(By.css selector(#para2))[0]"
assert p2.name_path == "UiElement(By.css selector(.centered))[0] > " + p2.name
assert p_name.name == "paragraph"
assert len(p2.get_path()) == 2


# def test_rect():
Expand Down

0 comments on commit f36b17c

Please sign in to comment.