Compare commits

...

4 Commits

Author SHA1 Message Date
Kevin F 0259dd1837 added environment variables to the compose test file 2021-10-14 18:15:50 +00:00
Kevin F 982f3ee459 update readme with testing info 2021-10-13 23:55:31 +00:00
Kevin F 58afc09ecb added selenium test files 2021-10-13 23:54:16 +00:00
Kevin F a022be36e4 fix docker run command 2021-10-11 18:45:45 +00:00
7 changed files with 70 additions and 1 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
dist dist
node_modules node_modules
.env

11
Dockerfile-selenium Normal file
View File

@ -0,0 +1,11 @@
FROM selenium/standalone-firefox
USER root
RUN apt-get -y update
RUN apt-get -y install python3-pip
USER seluser
RUN python3 -m pip install helium --user
WORKDIR /home/seluser
ADD tests/* /home/seluser/
ENTRYPOINT [ "python3", "tests.py" ]

View File

@ -71,7 +71,7 @@ $ node dist/index.js
### Docker ### Docker
``` ```
$ docker run -p 8080:8080 -e -it RIMGU_ADDRESS=0.0.0.0 -e RIMGU_PORT=8080 rimgu:latest $ docker run -p 8080:8080 -e RIMGU_ADDRESS=0.0.0.0 -e RIMGU_PORT=8080 -it rimgu:latest
``` ```
If you decide to run a public instance, consider opening an issue to have it listed here :) If you decide to run a public instance, consider opening an issue to have it listed here :)
@ -106,6 +106,12 @@ This software is released under the AGPL 3.0 license. In short, this means that
You are also requested to not remove attribution and donation information from forks and publications. You are also requested to not remove attribution and donation information from forks and publications.
### Testing
Tests are done with Selenium (Helium Python package)
Simply run the tests with ./run-tests.sh and if no errors spit out and the exit code is 0, it passed. Set environment variables for the tests in a .env file
## Support ## Support
Donations are welcome and will contribute to development, maintenance and a future public hosted instance. Donations are welcome and will contribute to development, maintenance and a future public hosted instance.

20
docker-compose-tests.yml Normal file
View File

@ -0,0 +1,20 @@
services:
rimgu:
build: .
network_mode: host
environment:
- RIMGU_PORT
- RIMGU_HOST
- RIMGU_ADDRESS
- RIMGU_HTTP_PROXY
- RIMGU_HTTPS_PROXY
- RIMGU_IMGUR_CLIENT_ID
- RIMGU_USE_API="false"
- RIMGU_PAGE_TITLE
selenium:
depends_on:
- "rimgu"
build:
dockerfile: ./Dockerfile-selenium
context: .
network_mode: host

5
run-tests.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
sudo docker-compose -f docker-compose-tests.yml up --abort-on-container-exit --build
EXIT_CODE=$?
sudo docker-compose -f docker-compose-tests.yml down
exit "$EXIT_CODE"

View File

@ -0,0 +1,12 @@
// Script is executed by selenium because the css selector is bugged in helium/selenium
// Check for the meme video's element presence then write to page so helium
// knows it is there
let vid = document.querySelectorAll('source[src="/InQKYvf.mp4"]')
if (vid.length){
let p = document.createElement("p")
p.innerText = "video exists"
document.body.appendChild(p)
}

14
tests/tests.py Normal file
View File

@ -0,0 +1,14 @@
import time
import helium
gallery_id = "cMeqLga"
f = helium.start_firefox(f"http://127.0.0.1:8080/gallery/{gallery_id}", headless=True)
assert helium.Text("2021-10-13T15:25:25Z").exists()
# Check for meme video by running a js to create a p element if it exists
with open(f"find_video_for_{gallery_id}.js", "r") as script:
f.execute_script(script.read())
assert helium.Text("video exists").exists()