:q!Merge branch 'main' into feature/nextcloud_menu_settings
commit
4e64f57c55
10
dd-ctl
10
dd-ctl
|
@ -806,6 +806,16 @@ upgrade_plugins_moodle(){
|
||||||
#mkdir -p /tmp/moodle/local/tresipuntimportgc
|
#mkdir -p /tmp/moodle/local/tresipuntimportgc
|
||||||
#cp -R local_plugins/moodle/tresipuntimportgc/* /tmp/moodle/local/tresipuntimportgc/
|
#cp -R local_plugins/moodle/tresipuntimportgc/* /tmp/moodle/local/tresipuntimportgc/
|
||||||
|
|
||||||
|
curl --location https://github.com/danmarsden/moodle-mod_attendance/archive/refs/heads/MOODLE_311_STABLE.zip > mod_attendance.zip
|
||||||
|
unzip -q mod_attendance.zip -d /tmp/moodle/mod/
|
||||||
|
mv /tmp/moodle/mod/moodle-mod_attendance-MOODLE_311_STABLE /tmp/moodle/mod/attendance
|
||||||
|
rm mod_attendance.zip
|
||||||
|
|
||||||
|
curl --location https://github.com/projectestac/moodle-mod_geogebra/archive/refs/heads/MOODLE_39_STABLE.zip > mod_geogebra.zip
|
||||||
|
unzip -q mod_geogebra.zip -d /tmp/moodle/mod/
|
||||||
|
mv /tmp/moodle/mod/moodle-mod_geogebra-MOODLE_39_STABLE /tmp/moodle/mod/geogebra
|
||||||
|
rm mod_geogebra.zip
|
||||||
|
|
||||||
cp -R /tmp/moodle/* "$SRC_FOLDER/moodle/"
|
cp -R /tmp/moodle/* "$SRC_FOLDER/moodle/"
|
||||||
rm -rf /tmp/moodle
|
rm -rf /tmp/moodle
|
||||||
docker exec -i dd-apps-moodle php7 admin/cli/purge_caches.php
|
docker exec -i dd-apps-moodle php7 admin/cli/purge_caches.php
|
||||||
|
|
|
@ -139,7 +139,7 @@
|
||||||
</ConfigTestElement>
|
</ConfigTestElement>
|
||||||
<hashTree/>
|
<hashTree/>
|
||||||
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="SAML Login Method" enabled="true">
|
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="SAML Login Method" enabled="true">
|
||||||
<stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
|
<stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
|
||||||
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
|
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
|
||||||
<boolProp name="LoopController.continue_forever">false</boolProp>
|
<boolProp name="LoopController.continue_forever">false</boolProp>
|
||||||
<intProp name="LoopController.loops">-1</intProp>
|
<intProp name="LoopController.loops">-1</intProp>
|
||||||
|
@ -192,8 +192,8 @@
|
||||||
<stringProp name="TestPlan.comments">Send response from login to SP for processing</stringProp>
|
<stringProp name="TestPlan.comments">Send response from login to SP for processing</stringProp>
|
||||||
</ModuleController>
|
</ModuleController>
|
||||||
<hashTree/>
|
<hashTree/>
|
||||||
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report 20 users" enabled="true">
|
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report N users" enabled="true">
|
||||||
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
<boolProp name="ResultCollector.error_logging">true</boolProp>
|
||||||
<objProp>
|
<objProp>
|
||||||
<name>saveConfig</name>
|
<name>saveConfig</name>
|
||||||
<value class="SampleSaveConfiguration">
|
<value class="SampleSaveConfiguration">
|
||||||
|
@ -230,7 +230,7 @@
|
||||||
</ResultCollector>
|
</ResultCollector>
|
||||||
<hashTree/>
|
<hashTree/>
|
||||||
<ResultCollector guiclass="RespTimeGraphVisualizer" testclass="ResultCollector" testname="Response Time Graph" enabled="true">
|
<ResultCollector guiclass="RespTimeGraphVisualizer" testclass="ResultCollector" testname="Response Time Graph" enabled="true">
|
||||||
<boolProp name="ResultCollector.error_logging">false</boolProp>
|
<boolProp name="ResultCollector.error_logging">true</boolProp>
|
||||||
<objProp>
|
<objProp>
|
||||||
<name>saveConfig</name>
|
<name>saveConfig</name>
|
||||||
<value class="SampleSaveConfiguration">
|
<value class="SampleSaveConfiguration">
|
||||||
|
|
|
@ -20,6 +20,9 @@ from selenium.webdriver.chrome.options import Options as ChromeOptions
|
||||||
from typing import Any, Dict, Iterable, List
|
from typing import Any, Dict, Iterable, List
|
||||||
|
|
||||||
|
|
||||||
|
STEP_TIMEOUT_SECONDS = 40
|
||||||
|
|
||||||
|
|
||||||
class DDSession:
|
class DDSession:
|
||||||
driver: webdriver.Chrome
|
driver: webdriver.Chrome
|
||||||
|
|
||||||
|
@ -28,7 +31,7 @@ class DDSession:
|
||||||
instance: str,
|
instance: str,
|
||||||
users_file: str,
|
users_file: str,
|
||||||
out_dir: pathlib.Path,
|
out_dir: pathlib.Path,
|
||||||
stepTimeoutSeconds: int = 20,
|
stepTimeoutSeconds: int = STEP_TIMEOUT_SECONDS,
|
||||||
):
|
):
|
||||||
self.instance = instance
|
self.instance = instance
|
||||||
self.users_file = [
|
self.users_file = [
|
||||||
|
@ -177,6 +180,7 @@ class DDSession:
|
||||||
lambda d: (
|
lambda d: (
|
||||||
d.find_elements(By.ID, "kc-form-login")
|
d.find_elements(By.ID, "kc-form-login")
|
||||||
+ d.find_elements(By.ID, "menu-apps-icon")
|
+ d.find_elements(By.ID, "menu-apps-icon")
|
||||||
|
+ d.find_elements(By.ID, "menu-apps-btn")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -213,7 +217,7 @@ class DDSession:
|
||||||
self.screenshot("OnlyOffice", "Opening")
|
self.screenshot("OnlyOffice", "Opening")
|
||||||
|
|
||||||
# Wait for OnlyOffice to start loading
|
# Wait for OnlyOffice to start loading
|
||||||
oofCSS = "div.app-onlyoffice #app iframe"
|
oofCSS = ".app-onlyoffice #app iframe"
|
||||||
WebDriverWait(self.driver, timeout=self.stepTimeoutSeconds).until(
|
WebDriverWait(self.driver, timeout=self.stepTimeoutSeconds).until(
|
||||||
lambda d: d.find_elements(By.CSS_SELECTOR, oofCSS)
|
lambda d: d.find_elements(By.CSS_SELECTOR, oofCSS)
|
||||||
)
|
)
|
||||||
|
@ -292,13 +296,13 @@ def main_test(
|
||||||
users_file: io.TextIOWrapper,
|
users_file: io.TextIOWrapper,
|
||||||
out_dir: pathlib.Path,
|
out_dir: pathlib.Path,
|
||||||
duration: int,
|
duration: int,
|
||||||
stepTimeoutSeconds: int = 20,
|
stepTimeoutSeconds: int = STEP_TIMEOUT_SECONDS,
|
||||||
) -> DDSession:
|
) -> DDSession:
|
||||||
session = DDSession(
|
session = DDSession(
|
||||||
instance=instance,
|
instance=instance,
|
||||||
users_file=users_file.read(),
|
users_file=users_file.read(),
|
||||||
out_dir=out_dir,
|
out_dir=out_dir,
|
||||||
stepTimeoutSeconds=20,
|
stepTimeoutSeconds=stepTimeoutSeconds,
|
||||||
)
|
)
|
||||||
|
|
||||||
first_run = True
|
first_run = True
|
||||||
|
|
Loading…
Reference in New Issue