Skip to content

Commit 52d73c4

Browse files
authored
workflow setup retries and tests (#3)
* typo * new key cases * key list cases * change to pytest * add worklfow * image run * fix * try this * image changes * typo * another one * registry login changes * changes * spacing * registry issue * err * change * credential edit * err * try new * new docker action * new change * check * maybe * errr * try * hate typos fr * maybe? * try installing docker itself * now add back tests * few cahnges * docker liveness changes * try without login * modifying workflow paths * typo
1 parent 82ff257 commit 52d73c4

6 files changed

Lines changed: 110 additions & 5 deletions

File tree

.github/workflows/tests.yaml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Tests
2+
on:
3+
push:
4+
paths:
5+
- 'fortress_sdk/**'
6+
- 'tests/**'
7+
- '.github/workflows/tests.yaml'
8+
9+
jobs:
10+
build-package-and-run-tests:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Login to GitHub Container Registry
14+
uses: docker/login-action@v2
15+
with:
16+
registry: ghcr.io
17+
username: ${{ github.actor }}
18+
password: ${{ secrets.GITHUB_TOKEN }}
19+
- uses: docker-practice/actions-setup-docker@master
20+
- run: |
21+
docker run -d -t -e ADMIN_API_KEY="admin_key" -e SELLER_API_KEY="seller_key" -e BUYER_API_KEY="buyer_key" -p 8080:8080 ghcr.io/atbash-labs/enclave-test
22+
- name: Checkout repository
23+
uses: actions/checkout@v3
24+
- name: Set up Python 3.8
25+
uses: actions/setup-python@v4
26+
with:
27+
python-version: "3.8"
28+
- name: Install dependencies
29+
run: |
30+
python -m pip install --upgrade pip
31+
pip install -r requirements.txt
32+
- name: install fortress sdk
33+
run: |
34+
pip install -e .
35+
sleep 2m
36+
- name: Test with pytest
37+
run: pytest

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pip install git+https://github.com/Atbash-Labs/python-sdk@<tag>
1010

1111
The module can then be used as follows:
1212
```python
13-
from fortress_sdk import *
13+
from fortress_sdk import Buyer,Sftp
1414
```
1515

1616
check out these [demo](./examples) interactions with the library

fortress_sdk/fortress_sdk.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,11 @@ def get_key_list(self):
133133
error = rsp["message"]
134134
print(error)
135135

136-
subkey_list = rsp["subkeys"]
137-
138-
return subkey_list
136+
try:
137+
subkey_list = rsp["subkeys"]
138+
return subkey_list
139+
except:
140+
return None
139141

140142
def query(self, query_key=None, query=""):
141143
"""Initiate the query and return the result

requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
pysftp==0.2.9
2-
requests==2.28.1
2+
requests==2.28.1
3+
pytest==7.2.0

tests/__init__.py

Whitespace-only changes.

tests/test_sdk.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import pytest
2+
from fortress_sdk import Buyer
3+
4+
5+
def new_valid_buyer():
6+
api_key = "buyer_key"
7+
ip_addr = "127.0.0.1"
8+
buyer = Buyer(api_key, ip_addr)
9+
return buyer
10+
11+
12+
def new_invalid_buyer():
13+
api_key = "invalid_buyer_key"
14+
ip_addr = "127.0.0.1"
15+
buyer = Buyer(api_key, ip_addr)
16+
return buyer
17+
18+
19+
def test_get_key_list_success():
20+
buyer = new_valid_buyer()
21+
key_list = buyer.get_key_list()
22+
23+
assert len(key_list) == 1
24+
25+
26+
def test_key_list_added_key():
27+
buyer = new_valid_buyer()
28+
29+
key_list = buyer.get_key_list()
30+
assert len(key_list) == 1
31+
32+
_ = buyer.get_key()
33+
34+
key_list = buyer.get_key_list()
35+
assert len(key_list) == 2
36+
37+
38+
def test_invalid_buyer_for_key_list():
39+
buyer = new_invalid_buyer()
40+
key_list = buyer.get_key_list()
41+
42+
assert key_list == None
43+
44+
45+
def test_get_key_success():
46+
buyer = new_valid_buyer()
47+
new_key = buyer.get_key()
48+
49+
assert new_key != None
50+
51+
52+
def test_invalid_buyer_for_new_key():
53+
buyer = new_invalid_buyer()
54+
new_key = buyer.get_key()
55+
56+
assert new_key == None
57+
58+
59+
def test_query_success():
60+
buyer = new_valid_buyer()
61+
sql_query = "select count(*) as numpeople from public.condition_era_death"
62+
result, accuracy = buyer.query(query=sql_query)
63+
64+
assert result != None
65+
assert accuracy != ""

0 commit comments

Comments
 (0)