pyseext 2.0.2__tar.gz → 2.0.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyseext-2.0.2/README.md → pyseext-2.0.3/PKG-INFO +11 -5
- pyseext-2.0.3/README.md +23 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/pyproject.toml +1 -1
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/grid_helper.py +31 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/has_referenced_javascript.py +2 -3
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext.egg-info/PKG-INFO +2 -12
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext.egg-info/SOURCES.txt +0 -1
- pyseext-2.0.2/PKG-INFO +0 -43
- pyseext-2.0.2/setup.py +0 -25
- {pyseext-2.0.2 → pyseext-2.0.3}/LICENSE +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/MANIFEST.in +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/setup.cfg +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/__init__.py +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/button_helper.py +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/component_query.py +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/core.py +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/field_helper.py +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/form_helper.py +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/input_helper.py +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/js/PySeExt.ComponentQuery.js +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/js/PySeExt.Core.js +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/js/PySeExt.FieldHelper.js +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/js/PySeExt.GridHelper.js +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/js/PySeExt.LocalStorageHelper.js +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/js/PySeExt.ObservableHelper.js +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/js/PySeExt.StoreHelper.js +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/js/PySeExt.TreeHelper.js +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/local_storage_helper.py +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/menu_helper.py +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/observable_helper.py +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/store_helper.py +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext/tree_helper.py +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext.egg-info/dependency_links.txt +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext.egg-info/requires.txt +0 -0
- {pyseext-2.0.2 → pyseext-2.0.3}/src/pyseext.egg-info/top_level.txt +0 -0
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pyseext
|
|
3
|
+
Version: 2.0.3
|
|
4
|
+
Summary: Aids the testing of ExtJS applications from Python using Selenium.
|
|
5
|
+
Requires-Python: >=3.8
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Requires-Dist: selenium
|
|
9
|
+
Dynamic: license-file
|
|
10
|
+
|
|
11
|
+
# PySeExt
|
|
2
12
|
|
|
3
13
|
This project contains a package to aid the testing of ExtJS applications from Python using Selenium.
|
|
4
14
|
|
|
@@ -21,7 +31,3 @@ Instance Variables | `lower_with_under` | `_lower_with_under`
|
|
|
21
31
|
Method Names | `lower_with_under()` | `_lower_with_under()`
|
|
22
32
|
Function/Method Parameters | `lower_with_under` |
|
|
23
33
|
Local Variables | `lower_with_under` |
|
|
24
|
-
|
|
25
|
-
### Additional Notes
|
|
26
|
-
I have also settled on a standard of having a single class per source file (that I now understand are called modules), although inner classes are allowed.
|
|
27
|
-
This is pretty much standard practice in other languages, and makes source control and managing conflicts far easier.
|
pyseext-2.0.3/README.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# PySeExt
|
|
2
|
+
|
|
3
|
+
This project contains a package to aid the testing of ExtJS applications from Python using Selenium.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
## Naming Standards
|
|
7
|
+
|
|
8
|
+
Full details [here](https://namingconvention.org/python/).
|
|
9
|
+
|
|
10
|
+
### TL;DR
|
|
11
|
+
**Type** | **Public** | **Internal**
|
|
12
|
+
--- | --- | ---
|
|
13
|
+
Packages | `lower_with_under` |
|
|
14
|
+
Modules | `lower_with_under` | `_lower_with_under`
|
|
15
|
+
Classes | `CapWords` | `_CapWords`
|
|
16
|
+
Exceptions | `CapWords` |
|
|
17
|
+
Functions | `lower_with_under()` | `_lower_with_under()`
|
|
18
|
+
Global/Class Constants | `CAPS_WITH_UNDER` | `_CAPS_WITH_UNDER`
|
|
19
|
+
Global/Class Variables | `lower_with_under` | `_lower_with_under`
|
|
20
|
+
Instance Variables | `lower_with_under` | `_lower_with_under`
|
|
21
|
+
Method Names | `lower_with_under()` | `_lower_with_under()`
|
|
22
|
+
Function/Method Parameters | `lower_with_under` |
|
|
23
|
+
Local Variables | `lower_with_under` |
|
|
@@ -335,6 +335,37 @@ class GridHelper(HasReferencedJavaScript):
|
|
|
335
335
|
self._input_helper.type_escape()
|
|
336
336
|
self._input_helper.type_escape()
|
|
337
337
|
|
|
338
|
+
def filter_bool_column(
|
|
339
|
+
self,
|
|
340
|
+
grid_cq: str,
|
|
341
|
+
column_text_or_data_index: str,
|
|
342
|
+
bool_value: str,
|
|
343
|
+
wait_for_store_loaded: bool = True,
|
|
344
|
+
):
|
|
345
|
+
"""Toggles the values on a boolean filtered column on a grid.
|
|
346
|
+
|
|
347
|
+
Args:
|
|
348
|
+
grid_cq (str): The component query for the owning grid.
|
|
349
|
+
column_text_or_data_index (str): The header text or dataIndex of the grid column.
|
|
350
|
+
bool_value (str): The value to set e.g. Yes/No.
|
|
351
|
+
wait_for_store_loaded (bool, optional): Indicates whether to wait for the store to load. Defaults to True.
|
|
352
|
+
"""
|
|
353
|
+
self.click_column_header_trigger(grid_cq, column_text_or_data_index)
|
|
354
|
+
self._menu_helper.move_to_menu_item_by_text("Filters")
|
|
355
|
+
|
|
356
|
+
if wait_for_store_loaded:
|
|
357
|
+
self._store_helper.reset_store_load_count(grid_cq)
|
|
358
|
+
|
|
359
|
+
self._menu_helper.click_menu_item_by_text(bool_value)
|
|
360
|
+
|
|
361
|
+
if wait_for_store_loaded:
|
|
362
|
+
self._store_helper.wait_for_store_loaded(grid_cq)
|
|
363
|
+
|
|
364
|
+
# Close filter and then column menu
|
|
365
|
+
self._input_helper.type_escape()
|
|
366
|
+
self._input_helper.type_escape()
|
|
367
|
+
|
|
368
|
+
|
|
338
369
|
def filter_number_column(
|
|
339
370
|
self,
|
|
340
371
|
grid_cq: str,
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
Module that contains our HasReferencedJavaScript class.
|
|
3
3
|
"""
|
|
4
4
|
from logging import Logger
|
|
5
|
-
from
|
|
6
|
-
import pkg_resources
|
|
5
|
+
from importlib.resources import files
|
|
7
6
|
|
|
8
7
|
from selenium.webdriver.remote.webdriver import WebDriver
|
|
9
8
|
from selenium.webdriver.support.wait import WebDriverWait
|
|
@@ -48,7 +47,7 @@ class HasReferencedJavaScript:
|
|
|
48
47
|
# If our JavaScript has not been loaded then load it now
|
|
49
48
|
if not self._driver.execute_script(self._SCRIPT_LOADED_TEST_TEMPLATE.format(class_name=class_name)):
|
|
50
49
|
# Read JavaScript from package resources
|
|
51
|
-
stream =
|
|
50
|
+
stream = files(__package__).joinpath('js', f'PySeExt.{class_name}.js').open('rb')
|
|
52
51
|
|
|
53
52
|
self._logger.debug("Loading JavaScript from '%s'", stream.name)
|
|
54
53
|
self._driver.execute_script(str(stream.read(), encoding = "utf-8"))
|
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyseext
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.3
|
|
4
4
|
Summary: Aids the testing of ExtJS applications from Python using Selenium.
|
|
5
|
-
Home-page: https://github.com/westy/pyseext
|
|
6
|
-
Author: Martyn West
|
|
7
|
-
Author-email: 657393+westy@users.noreply.github.com
|
|
8
5
|
Requires-Python: >=3.8
|
|
9
6
|
Description-Content-Type: text/markdown
|
|
10
7
|
License-File: LICENSE
|
|
11
8
|
Requires-Dist: selenium
|
|
12
|
-
Dynamic: author
|
|
13
|
-
Dynamic: author-email
|
|
14
|
-
Dynamic: home-page
|
|
15
9
|
Dynamic: license-file
|
|
16
10
|
|
|
17
|
-
# PySeExt
|
|
11
|
+
# PySeExt
|
|
18
12
|
|
|
19
13
|
This project contains a package to aid the testing of ExtJS applications from Python using Selenium.
|
|
20
14
|
|
|
@@ -37,7 +31,3 @@ Instance Variables | `lower_with_under` | `_lower_with_under`
|
|
|
37
31
|
Method Names | `lower_with_under()` | `_lower_with_under()`
|
|
38
32
|
Function/Method Parameters | `lower_with_under` |
|
|
39
33
|
Local Variables | `lower_with_under` |
|
|
40
|
-
|
|
41
|
-
### Additional Notes
|
|
42
|
-
I have also settled on a standard of having a single class per source file (that I now understand are called modules), although inner classes are allowed.
|
|
43
|
-
This is pretty much standard practice in other languages, and makes source control and managing conflicts far easier.
|
pyseext-2.0.2/PKG-INFO
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: pyseext
|
|
3
|
-
Version: 2.0.2
|
|
4
|
-
Summary: Aids the testing of ExtJS applications from Python using Selenium.
|
|
5
|
-
Home-page: https://github.com/westy/pyseext
|
|
6
|
-
Author: Martyn West
|
|
7
|
-
Author-email: 657393+westy@users.noreply.github.com
|
|
8
|
-
Requires-Python: >=3.8
|
|
9
|
-
Description-Content-Type: text/markdown
|
|
10
|
-
License-File: LICENSE
|
|
11
|
-
Requires-Dist: selenium
|
|
12
|
-
Dynamic: author
|
|
13
|
-
Dynamic: author-email
|
|
14
|
-
Dynamic: home-page
|
|
15
|
-
Dynamic: license-file
|
|
16
|
-
|
|
17
|
-
# PySeExt Module Repository
|
|
18
|
-
|
|
19
|
-
This project contains a package to aid the testing of ExtJS applications from Python using Selenium.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
## Naming Standards
|
|
23
|
-
|
|
24
|
-
Full details [here](https://namingconvention.org/python/).
|
|
25
|
-
|
|
26
|
-
### TL;DR
|
|
27
|
-
**Type** | **Public** | **Internal**
|
|
28
|
-
--- | --- | ---
|
|
29
|
-
Packages | `lower_with_under` |
|
|
30
|
-
Modules | `lower_with_under` | `_lower_with_under`
|
|
31
|
-
Classes | `CapWords` | `_CapWords`
|
|
32
|
-
Exceptions | `CapWords` |
|
|
33
|
-
Functions | `lower_with_under()` | `_lower_with_under()`
|
|
34
|
-
Global/Class Constants | `CAPS_WITH_UNDER` | `_CAPS_WITH_UNDER`
|
|
35
|
-
Global/Class Variables | `lower_with_under` | `_lower_with_under`
|
|
36
|
-
Instance Variables | `lower_with_under` | `_lower_with_under`
|
|
37
|
-
Method Names | `lower_with_under()` | `_lower_with_under()`
|
|
38
|
-
Function/Method Parameters | `lower_with_under` |
|
|
39
|
-
Local Variables | `lower_with_under` |
|
|
40
|
-
|
|
41
|
-
### Additional Notes
|
|
42
|
-
I have also settled on a standard of having a single class per source file (that I now understand are called modules), although inner classes are allowed.
|
|
43
|
-
This is pretty much standard practice in other languages, and makes source control and managing conflicts far easier.
|
pyseext-2.0.2/setup.py
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
# Learn more: https://github.com/kennethreitz/setup.py
|
|
4
|
-
|
|
5
|
-
from setuptools import setup, find_packages
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
with open('README.md', encoding = 'utf-8') as f:
|
|
9
|
-
readme = f.read()
|
|
10
|
-
|
|
11
|
-
with open('LICENSE', encoding = 'utf-8') as f:
|
|
12
|
-
license_text = f.read()
|
|
13
|
-
|
|
14
|
-
setup(
|
|
15
|
-
name='pyseext',
|
|
16
|
-
version='1.4.1',
|
|
17
|
-
description='Python Selenium ExtJS - package for helping interact with an ExtJS application from Python using Selenium',
|
|
18
|
-
long_description=readme,
|
|
19
|
-
author='Martyn West',
|
|
20
|
-
author_email='657393+westy@users.noreply.github.com',
|
|
21
|
-
url='https://github.com/westy/pyseext',
|
|
22
|
-
license=license_text,
|
|
23
|
-
packages=find_packages(exclude=('tests', 'docs')),
|
|
24
|
-
package_data={'pyseext': ['js/*.js']}
|
|
25
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|