From 04547edfe712c34168b12a151af5f718610e4da5 Mon Sep 17 00:00:00 2001 From: alyssadev Date: Sun, 17 Sep 2023 07:19:04 +1000 Subject: [PATCH] fixed tests, added to deploy --- .github/workflows/main.yml | 23 ++++++++++++++++-- test.py | 48 +++++++++++++++++++++----------------- 2 files changed, 47 insertions(+), 24 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1dc3384..ebc5b37 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,8 +6,7 @@ on: jobs: deploy: - runs-on: self-hosted -# runs-on: ubuntu-latest + runs-on: ubuntu-latest name: Deploy environment: Cloudflare Worker steps: @@ -20,3 +19,23 @@ jobs: AUTH_KEY env: AUTH_KEY: ${{ secrets.AUTH_KEY }} + test: + runs-on: ubuntu-latest + name: Test + environment: Cloudflare Worker + steps: + - uses: actions/checkout@master + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install requests + - name: Test + env: + HOST: ${{ vars.DEPLOY_HOST }} + AUTH_KEY: ${{ secrets.AUTH_KEY }} + run: + python test.py diff --git a/test.py b/test.py index 333527e..59cbeee 100644 --- a/test.py +++ b/test.py @@ -1,18 +1,22 @@ #!/usr/bin/env python3 -from requests import get,put,post,delete,patch,request +from requests import Session, request from os import environ host = environ.get("HOST", "https://linkie.username.workers.dev") auth = {"Authorization": environ.get("AUTH_KEY", "")} path = environ.get("TEST_PATH", "/devtestpath") +print(f"Running tests on {host}") +unauth_session = Session() +unauth_session.trust_env = False +auth_session = Session() try: # unauth get / - req = get(host, allow_redirects=False) + req = unauth_session.get(host, allow_redirects=False) assert req.status_code == 301 and "http" in req.headers["location"] # unauth get / # auth get / - req = get(host,headers=auth) + req = auth_session.get(host,headers=auth) assert req.status_code == 200 # auth get / # unsupported method @@ -20,57 +24,57 @@ try: assert req.status_code == 405 # unsupported method # unauth requests to auth methods - reqs = put(host),post(host),delete(host) + reqs = unauth_session.put(host),unauth_session.post(host),unauth_session.delete(host) assert all(req.status_code == 403 for req in reqs) # unauth requests to auth methods # auth put wo data - req = put(host + path,data={},headers=auth) + req = auth_session.put(host + path,data={},headers=auth) assert req.status_code == 400 # auth put wo data - req = post(host + path,data={},headers=auth) + req = auth_session.post(host + path,data={},headers=auth) assert req.status_code == 400 # auth post wo data - req = patch(host + path,data={},headers=auth) + req = auth_session.patch(host + path,data={},headers=auth) assert req.status_code == 400 # auth patch wo data # auth put invalid url - req = put(host + path,data={"u": "golf sale"},headers=auth) + req = auth_session.put(host + path,data={"u": "golf sale"},headers=auth) assert req.status_code == 400 # auth put invalid url - req = post(host + path,data={"u": "golf sale"},headers=auth) + req = auth_session.post(host + path,data={"u": "golf sale"},headers=auth) assert req.status_code == 400 # auth post invalid url - req = patch(host + path,data={"u": "golf sale"},headers=auth) + req = auth_session.patch(host + path,data={"u": "golf sale"},headers=auth) assert req.status_code == 400 # auth patch invalid url # auth put wo path - req = put(host,data={"u": "http://www.example.com"},headers=auth) + req = auth_session.put(host,data={"u": "http://www.example.com"},headers=auth) assert req.status_code == 400 # auth put wo path - req = post(host,data={"u": "http://www.example.com"},headers=auth) + req = auth_session.post(host,data={"u": "http://www.example.com"},headers=auth) assert req.status_code == 400 # auth post wo path - req = post(host,data={"u": "http://www.example.com"},headers=auth) + req = auth_session.post(host,data={"u": "http://www.example.com"},headers=auth) assert req.status_code == 400 # auth patch wo path # auth put valid - req = put(host + path,data={"u": "http://www.example.com/?put"},headers=auth) + req = auth_session.put(host + path,data={"u": "http://www.example.com/?put"},headers=auth) assert req.status_code == 201 # auth put valid - req = get(host + path, allow_redirects=False) + req = unauth_session.get(host + path, allow_redirects=False) assert req.status_code == 302 and req.headers["location"] == "http://www.example.com/?put" - req = post(host + path + "post",data={"u": "http://www.example.com/?post"},headers=auth) + req = auth_session.post(host + path + "post",data={"u": "http://www.example.com/?post"},headers=auth) assert req.status_code == 201 # auth post valid - req = get(host + path + "post", allow_redirects=False) + req = unauth_session.get(host + path + "post", allow_redirects=False) assert req.status_code == 302 and req.headers["location"] == "http://www.example.com/?post" - req = patch(host + path + "patch",data={"u": "http://www.example.com/?patch"},headers=auth) + req = auth_session.patch(host + path + "patch",data={"u": "http://www.example.com/?patch"},headers=auth) assert req.status_code == 201 # auth patch valid - req = get(host + path + "patch", allow_redirects=False) + req = unauth_session.get(host + path + "patch", allow_redirects=False) assert req.status_code == 302 and req.headers["location"] == "http://www.example.com/?patch" # auth delete wo path - req = delete(host,headers=auth) + req = auth_session.delete(host,headers=auth) assert req.status_code == 400 # auth delete wo path # auth delete valid - req = delete(host + path,headers=auth) + req = auth_session.delete(host + path,headers=auth) assert req.status_code == 200 # auth delete valid -# req = get(host + path, allow_redirects=False) +# req = unauth_session.get(host + path, allow_redirects=False) # assert req.status_code == 404 except AssertionError: print(req,req.headers,req.text)