Skip to content

Commit

Permalink
Merge pull request #126 from dai-motoki/issue-125
Browse files Browse the repository at this point in the history
GitHub Actionsと新規テストファイルの追加
  • Loading branch information
dai-motoki authored May 6, 2024
2 parents baeb1ff + 8e507c5 commit fc9aea2
Show file tree
Hide file tree
Showing 4 changed files with 138 additions and 0 deletions.
86 changes: 86 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@


name: PyPI Package CI/CD # PyPIパッケージのCI/CDワークフロー名

on: # トリガーの設定
push: # - プッシュイベントの場合
branches: # -- 対象ブランチ
- main # --- mainブランチ
- "release/**" # --- releaseで始まるブランチ
pull_request: # - プルリクエストイベントの場合
branches: # -- 対象ブランチ
- main # --- mainブランチ
- "release/**" # --- releaseで始まるブランチ

jobs: # ジョブの定義
test: # テストジョブ
runs-on: ubuntu-latest # - Ubuntu最新版で実行
strategy:
matrix:
python-version: [3.7, 3.8, 3.9, "3.10", "3.11"] # 複数のPythonバージョン(3.7〜3.11)でテストを実行
steps: # - ステップの定義
- uses: actions/checkout@v2 # -- リポジトリのチェックアウト(v2)
- name: Set up Python ${{ matrix.python-version }} # -- 指定したバージョンのPythonをセットアップ
uses: actions/setup-python@v2 # --- Python環境のセットアップ(v2)
with: # --- オプション
python-version: ${{ matrix.python-version }} # ---- マトリクスで指定したPythonバージョンを使用
- name: Install dependencies # -- 依存関係のインストール
run: | # --- 以下のコマンドを実行
python -m pip install --upgrade pip # ---- pipのアップグレード
pip install -e . # ---- 現在のディレクトリを編集可能モードでインストール
- name: Run tests # -- テストの実行
run: | # --- 以下のコマンドを実行
pip install pytest # ---- pytestをインストール
- name: Run test_sample.py # -- test_sample.pyの実行
run: | # --- 以下のコマンドを実行
pytest tests/test_sample.py # ---- test_sample.pyをpytestで実行
- name: Run test_llms.py # -- test_llms.pyの実行
env: # --- 環境変数の設定
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} # ---- AnthropicのAPIキー(シークレットから取得)
run: | # --- 以下のコマンドを実行
pytest tests/test_llms.py -s # ---- test_llms.pyをpytestで実行
- name: Run test_minimal.py # -- test_minimal.pyの実行
run: | # --- 以下のコマンドを実行
pytest tests/test_minimal.py -s # ---- test_minimal.pyをpytestで実行し、print内容を出力
# - name: Run test_sample.py # -- test_sample.pyの実行
# if: matrix.python-version == '3.11' # --- Python 3.11の場合のみ実行
# run: | # --- 以下のコマンドを実行
# pytest tests/test_sample.py # ---- test_sample.pyをpytestで実行
# - name: Run test_cli.py # -- test_cli.pyの実行
# if: matrix.python-version == '3.11' # --- Python 3.11の場合のみ実行
# run: | # --- 以下のコマンドを実行
# pytest tests/test_cli.py # ---- test_cli.pyをpytestで実行
# - name: Run test_converter.py # -- test_converter.pyの実行
# if: matrix.python-version == '3.11' # --- Python 3.11の場合のみ実行
# run: | # --- 以下のコマンドを実行
# pytest tests/test_converter.py # ---- test_converter.pyをpytestで実行
deploy: # デプロイジョブ
needs: test # - テストジョブが成功した後に実行
runs-on: ubuntu-latest # - Ubuntu最新版で実行
if: github.event_name == 'push' && startsWith(github.ref, 'refs/heads/release/') # - releaseブランチへのプッシュ時のみ実行
steps: # - ステップの定義
- uses: actions/checkout@v2 # -- リポジトリのチェックアウト(v2)
- name: Set up Python # -- Pythonのセットアップ
uses: actions/setup-python@v2 # --- Python環境のセットアップ(v2)
with: # --- オプション
python-version: 3.10 # ---- Python 3.8を使用
- name: Install dependencies # -- 依存関係のインストール
run: | # --- 以下のコマンドを実行
python -m pip install --upgrade pip # ---- pipのアップグレード
pip install -e . # ---- 現在のディレクトリを編集可能モードでインストール
- name: Update version and upload to PyPI # -- バージョンの更新とPyPIへのアップロード
env: # --- 環境変数の設定
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }} # ---- PyPIユーザー名(シークレットから取得)
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} # ---- PyPIパスワード(シークレットから取得)
run: | # --- 以下のコマンドを実行
chmod +x update_and_upload.sh # ---- update_and_upload.shに実行権限を付与
./update_and_upload.sh # ---- update_and_upload.shを実行
- name: Merge release branch to main # -- リリースブランチをmainブランチにマージ
uses: devmasx/merge-branch@v1.3.1 # --- merge-branchアクションを使用(v1.3.1)
with: # --- オプション
type: now # ---- 即時マージ
from_branch: ${{ github.ref }} # ---- マージ元ブランチ(現在のブランチ)
target_branch: main # ---- マージ先ブランチ(mainブランチ)
github_token: ${{ secrets.GITHUB_TOKEN }} # ---- GitHubトークン(シークレットから取得)
19 changes: 19 additions & 0 deletions tests/test_llms.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import zoltraak.llms.claude as claude

def test_generate_response():
"""
generate_response関数のテスト
"""
model = "claude-3-haiku-20240307"
prompt = "今日の晩御飯を提案して"
max_tokens = 100
temperature = 0.8

response = claude.generate_response(model, prompt, max_tokens, temperature)

# レスポンスが文字列であることを確認
assert isinstance(response, str)


# レスポンスが空でないことを確認
assert response.strip() != ""
31 changes: 31 additions & 0 deletions tests/test_minimal.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import unittest
import subprocess

class MinimumTestCase(unittest.TestCase):
def test_zoltraak_only(self):
"""
zoltraakコマンドをmdファイルの引数なしで実行した場合、正しいエラーメッセージが表示されることを確認します。
実行例: `zoltraak` コマンドを引数なしで実行した場合、"エラー: 入力ファイルまたはテキストが指定されていません。"というエラーメッセージが表示されるべきです。
"""
result = subprocess.run(['zoltraak'], capture_output=True, text=True) # zoltraakコマンドを引数なしで実行し、その結果をresultに格納します。
print("STDOUT:", result.stdout) # 標準出力の内容を出力
print("STDERR:", result.stderr) # 標準エラーの内容を出力
self.assertIn("エラー: 入力ファイルまたはテキストが指定されていません。", result.stdout) # エラーメッセージは標準エラー出力に含まれているはずなので、result.stderrをチェックするように修正

# def test_zoltraak_with_compiler(self):
# """zoltraak "〜したい" -cコマンドのテスト"""
# result = subprocess.run(["zoltraak", "テストしたい", "-c", "コンパイラ"], capture_output=True, text=True)
# self.assertEqual(result.returncode, 0)
# self.assertIn("コンパイル結果", result.stdout)

# def test_zoltraak_without_compiler(self):
# """zoltraak "〜したい" -cコマンド(コンパイラなし)のテスト"""
# result = subprocess.run(["zoltraak", "テストしたい", "-c"], capture_output=True, text=True)
# self.assertNotEqual(result.returncode, 0)
# self.assertIn("エラー: 入力ファイルまたはテキストが指定されていません。", result.stderr)

# def test_zoltraak_with_custom_compiler(self):
# """zoltraak "〜したい" -cc自作コンパイラのテスト"""
# result = subprocess.run(["zoltraak", "テストしたい", "-cc", "自作コンパイラ"], capture_output=True, text=True)
# self.assertEqual(result.returncode, 0)
# self.assertIn("自作コンパイラの結果", result.stdout)
2 changes: 2 additions & 0 deletions tests/test_sample.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
def test_example():
assert True

0 comments on commit fc9aea2

Please sign in to comment.