Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions .github/workflows/api-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: API tests


on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
api-tests:
runs-on: ubuntu-latest
environment: testing
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
LANGFUSE_SECRET_KEY: ${{ secrets.LANGFUSE_SECRET_KEY }}
LANGFUSE_PUBLIC_KEY: ${{ secrets.LANGFUSE_PUBLIC_KEY }}
LANGFUSE_HOST: ${{ secrets.LANGFUSE_HOST }}
RXN_CLASSIFICATION_MODEL_PATH: ${{ secrets.RXN_CLASSIFICATION_MODEL_PATH }}
AZ_MODEL_CONFIG_PATH: ${{ secrets.AZ_MODEL_CONFIG_PATH }}
AZ_MODELS_PATH: ${{ secrets.AZ_MODELS_PATH }}
AZURE_AI_API_KEY: ${{ secrets.AZURE_AI_API_KEY }}
AZURE_AI_API_BASE: ${{ secrets.AZURE_AI_API_BASE }}
DEEPINFRA_API_KEY: ${{ secrets.DEEPINFRA_API_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
TOGETHER_API_KEY: ${{ secrets.TOGETHER_API_KEY }}
FIREWORKS_AI_API_KEY: ${{ secrets.FIREWORKS_AI_API_KEY }}
ENABLE_LOGGING: False
defaults:
run:
working-directory: ./tests/
strategy:
matrix:
os: [ubuntu-latest]
python-version: [3.9]
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements_tests.txt

- name: Run all API tests
run: |
pytest ./api-tests/ -v --ignore=./api-tests/test_api_deepseek.py -v
54 changes: 54 additions & 0 deletions .github/workflows/deepseek-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Deepseek API tests


on:
push:
branches:
- main
workflow_dispatch:

jobs:
deepseek-api-tests:
runs-on: ubuntu-latest
environment: testing
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
LANGFUSE_SECRET_KEY: ${{ secrets.LANGFUSE_SECRET_KEY }}
LANGFUSE_PUBLIC_KEY: ${{ secrets.LANGFUSE_PUBLIC_KEY }}
LANGFUSE_HOST: ${{ secrets.LANGFUSE_HOST }}
RXN_CLASSIFICATION_MODEL_PATH: ${{ secrets.RXN_CLASSIFICATION_MODEL_PATH }}
AZ_MODEL_CONFIG_PATH: ${{ secrets.AZ_MODEL_CONFIG_PATH }}
AZ_MODELS_PATH: ${{ secrets.AZ_MODELS_PATH }}
AZURE_AI_API_KEY: ${{ secrets.AZURE_AI_API_KEY }}
AZURE_AI_API_BASE: ${{ secrets.AZURE_AI_API_BASE }}
DEEPINFRA_API_KEY: ${{ secrets.DEEPINFRA_API_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
TOGETHER_API_KEY: ${{ secrets.TOGETHER_API_KEY }}
FIREWORKS_AI_API_KEY: ${{ secrets.FIREWORKS_AI_API_KEY }}
ENABLE_LOGGING: False
defaults:
run:
working-directory: ./tests/
strategy:
matrix:
os: [ubuntu-latest]
python-version: [3.9]
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements_tests.txt

- name: Run deepseek tests
if: github.event_name != 'workflow_dispatch'
run: |
pytest ./api-tests/test_api_deepseek.py -v
55 changes: 55 additions & 0 deletions .github/workflows/llm-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: LLM tests


on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
llm-tests:
runs-on: ubuntu-latest
environment: testing
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
LANGFUSE_SECRET_KEY: ${{ secrets.LANGFUSE_SECRET_KEY }}
LANGFUSE_PUBLIC_KEY: ${{ secrets.LANGFUSE_PUBLIC_KEY }}
LANGFUSE_HOST: ${{ secrets.LANGFUSE_HOST }}
RXN_CLASSIFICATION_MODEL_PATH: ${{ secrets.RXN_CLASSIFICATION_MODEL_PATH }}
AZ_MODEL_CONFIG_PATH: ${{ secrets.AZ_MODEL_CONFIG_PATH }}
AZ_MODELS_PATH: ${{ secrets.AZ_MODELS_PATH }}
AZURE_AI_API_KEY: ${{ secrets.AZURE_AI_API_KEY }}
AZURE_AI_API_BASE: ${{ secrets.AZURE_AI_API_BASE }}
DEEPINFRA_API_KEY: ${{ secrets.DEEPINFRA_API_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
TOGETHER_API_KEY: ${{ secrets.TOGETHER_API_KEY }}
FIREWORKS_AI_API_KEY: ${{ secrets.FIREWORKS_AI_API_KEY }}
ENABLE_LOGGING: False
defaults:
run:
working-directory: ./tests/
strategy:
matrix:
os: [ubuntu-latest]
python-version: [3.9]
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements_tests.txt

- name: Run LLM tests
run: |
pytest ./llm-tests/ -v
86 changes: 0 additions & 86 deletions .github/workflows/tests.yml

This file was deleted.

Empty file added tests/api-tests/__init__.py
Empty file.
76 changes: 76 additions & 0 deletions tests/api-tests/test_api_call_fail.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
import requests
import json
import pytest

import rootutils
root_dir = rootutils.setup_root(".",
indicator=".project-root",
pythonpath=True)

from tests.variables_test import BASE_URL, ENDPOINTS, X_API_KEY, \
DEEPSEEK_FIREWORKS_MODEL, USPTO_MODEL, CLAUDE_MODEL, PISTACHIO_MODEL


def test_retrosynthesis_fail():
"""Tests retrosynthesis endpoint with empty input("")

Asserts
-------
status_code : int
400 for a failed request.
error message : dict
The response should be a dictionary with keys ['error'].
"""
url = f"{BASE_URL}{ENDPOINTS['retrosynthesis']}"

payload = json.dumps({
"advanced_prompt": "True",
"stability_flag": "False",
"hallucination_check": "False",
"llm": CLAUDE_MODEL,
"model_version": PISTACHIO_MODEL})

headers = {
'x-api-key': X_API_KEY,
'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

assert response.status_code == 400
assert response.json() == {
"error": "SMILES string is required. Please include a 'smiles' field"}


def test_rerun_retro_fail():
"""Tests rerun_retrosynthesis endpoint with empty input("")

Asserts
-------
status_code: 400
error message: status code and error message
"""
url = f"{BASE_URL}{ENDPOINTS['rerun_retro']}"

payload = json.dumps({
"advanced_prompt": "True",
"stability_flag": "False",
"hallucination_check": "False",
"llm": DEEPSEEK_FIREWORKS_MODEL,
"model_version": USPTO_MODEL})

headers = {
'x-api-key': X_API_KEY,
'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

assert response.status_code == 400
assert response.json() == {
"error":
"Molecule string is required, Please include a 'smiles' field"}


if __name__ == '__main__':
pytest.main()
Loading