Skip to content

Commit

Permalink
move tests to testing/
Browse files Browse the repository at this point in the history
  • Loading branch information
skasberger committed Apr 14, 2021
1 parent fa6e5b3 commit 4bc100e
Show file tree
Hide file tree
Showing 27 changed files with 73 additions and 159 deletions.
File renamed without changes.
2 changes: 2 additions & 0 deletions tests/config.py → testing/config.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import os

from pydantic import BaseSettings


class Config(BaseSettings):
INSTANCE: str
API_TOKEN: str = ""
USER_AGENT: str = None
HEADLESS: bool = True
BROWSER: list = None
Expand Down
12 changes: 7 additions & 5 deletions tests/conftest.py → testing/conftest.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from json import load
import os
from json import load
from time import sleep

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By

from .config import Config


Expand Down Expand Up @@ -95,12 +97,11 @@ def login_normal_user(driver, test_config, config, user, password):
return driver


def login_shibboleth_user(driver, test_config, config, user, password):
base_url = test_config["instance"]["base-url"]
def login_shibboleth_user(driver, base_url, width, height, user, password, name):
driver.get(f"{base_url}/loginpage.xhtml")
sleep(5)
driver.set_window_size(config.WINDOW_WIDTH, config.WINDOW_HEIGHT)
sleep(5)
driver.set_window_size(width, height)
sleep(10)
driver.find_element(By.ID, "idpSelectSelector").click()
sleep(1)
dropdown = driver.find_element(By.ID, "idpSelectSelector")
Expand All @@ -118,6 +119,7 @@ def login_shibboleth_user(driver, test_config, config, user, password):
driver.find_element(By.ID, "_shib_idp_accept_TOU").click()
driver.find_element(By.NAME, "_eventId_proceed").click()
sleep(5)
assert driver.find_element(By.ID, "userDisplayInfoTitle").text == name
return driver


Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,3 @@
from .test_sitemap import *
from .test_user_authentication import *
from .test_user_profile import *

Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
from .test_dataverses import *
from .test_datasets import *
from .test_datafiles import *
from .test_datasets import *
from .test_dataverses import *
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
import pytest
import requests

from ..conftest import get_instance_dir, read_json, login_normal_user
from ..conftest import get_instance_dir
from ..conftest import login_normal_user
from ..conftest import read_json


class TestDatafiles:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
import pytest
import requests

from ..conftest import get_instance_dir, read_json, login_normal_user
from ..conftest import get_instance_dir
from ..conftest import login_normal_user
from ..conftest import read_json


class TestDatasets:
Expand All @@ -23,29 +25,25 @@ def test_all_datasets(self, config, test_config, firefox):
config.USER_SUPERUSER_PWD,
)

for ds in datasets:
for ds in datasets: # TODO: remove list subscripting
url = f"{base_url}/dataset.xhtml?persistentId={ds['pid']}"
firefox.get(url)
sleep(1)
assert url == firefox.current_url

def test_all_doiorg_pages(self, config, test_config, firefox):
def test_all_doiorg_pages(self, config, test_config):
if not test_config["tests"]["all-datasets"]["test"]:
pytest.skip("Test not configured to be executed.")

instance_dir = get_instance_dir(config)
datasets = read_json(os.path.join(instance_dir, config.FILENAME_DATASETS))
firefox = login_normal_user(
firefox,
test_config,
config,
config.USER_SUPERUSER,
config.USER_SUPERUSER_PWD,
)
base_url = test_config["instance"]["base-url"]

# Resolve doi.org URL
for ds in datasets:
url = f"https://doi.org/{ds['pid'][4:]}"
firefox.get(url)
url_start = f"https://doi.org/{ds['pid'][4:]}"
url_end = f"{base_url}/dataset.xhtml?persistentId={ds['pid']}"
resp = requests.get(url_start)
sleep(3)
assert url == firefox.current_url
assert resp.status_code == 200
assert url_end == resp.current_url
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@

import pytest

from ..conftest import get_instance_dir, read_json, login_normal_user
from ..conftest import get_instance_dir
from ..conftest import login_normal_user
from ..conftest import read_json


class TestDataverses:
Expand Down
10 changes: 10 additions & 0 deletions testing/dataverse/test_homepage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import os
from time import sleep

import pytest
import requests
from selenium.webdriver.common.by import By

from ..conftest import click_cookie_rollbar
from ..conftest import get_instance_dir
from ..conftest import read_json
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,19 @@
import requests
from selenium.webdriver.common.by import By

from ..conftest import login_normal_user, login_shibboleth_user
from ..conftest import login_normal_user
from ..conftest import login_shibboleth_user


class TestUserAuthentication:
def test_shibboleth_interfaces(self, test_config):
if not test_config["tests"]["login"]["shibboleth-endpoint"]["test"]:
class TestShibboleth:
def test_interfaces(self, test_config):
test_cfg = test_config["tests"]["login"]["shibboleth-endpoint"]
instance_cfg = test_config["instance"]

if not test_cfg:
pytest.skip("Test not configured to be executed.")

base_url = test_config["instance"]["base-url"]
base_url = instance_cfg["base-url"]
url = f"{base_url}/Shibboleth.sso/DiscoFeed"
resp = requests.get(url)
sleep(3)
Expand All @@ -27,34 +31,44 @@ def test_shibboleth_interfaces(self, test_config):
assert resp.status_code == 200
assert resp.url == url

def test_login_normal_user(self, test_config, config, browser):
if not test_config["tests"]["login"]["normal-user"]["test"]:
def test_login(self, test_config, config, browser):
test_cfg = test_config["tests"]["login"]["shibboleth-user"]
instance_cfg = test_config["instance"]

if not test_cfg["test"]:
pytest.skip("Test not configured to be executed.")

for name, driver in browser.items():
driver = login_normal_user(
driver, test_config, config, config.USER_NORMAL, config.USER_NORMAL_PWD,
driver = login_shibboleth_user(
driver,
test_cfg["base-url"],
config.WINDOW_WIDTH,
config.WINDOW_,
config.USER_SHIBBOLETH,
config.USER_SHIBBOLETH_PWD,
config.USER_SHIBBOLETH_NAME,
)
assert test_config["instance"]["title"] == driver.title
assert instance_cfg["title"] == driver.title
assert (
driver.find_element(By.ID, "userDisplayInfoTitle").text
== config.USER_NORMAL_NAME
== config.USER_SHIBBOLETH_NAME
)

def test_login_shibboleth_user(self, test_config, config, browser):
if not test_config["tests"]["login"]["shibboleth-user"]["test"]:

class TestNormalLogin:
def test_login(self, test_config, config, browser):
test_cfg = test_config["tests"]["login"]["normal-user"]
instance_cfg = test_config["instance"]

if not test_cfg["test"]:
pytest.skip("Test not configured to be executed.")

for name, driver in browser.items():
driver = login_shibboleth_user(
driver,
test_config,
config,
config.USER_SHIBBOLETH,
config.USER_SHIBBOLETH_PWD,
driver = login_normal_user(
driver, test_config, config, config.USER_NORMAL, config.USER_NORMAL_PWD,
)
assert test_config["instance"]["title"] == driver.title
assert instance_cfg["title"] == driver.title
assert (
driver.find_element(By.ID, "userDisplayInfoTitle").text
== config.USER_SHIBBOLETH_NAME
== config.USER_NORMAL_NAME
)
File renamed without changes.
File renamed without changes.
File renamed without changes.
115 changes: 0 additions & 115 deletions tests/dataverse/test_homepage.py

This file was deleted.

0 comments on commit 4bc100e

Please sign in to comment.