Skip to content
Merged
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
64 changes: 64 additions & 0 deletions .github/workflows/unit_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Unit Tests

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

jobs:
test:
if: ${{ !(github.event_name == 'pull_request' && startsWith(github.event.pull_request.title, 'docs:')) }}

runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest ]
python-version: [ '3.8' ]


steps:
- name: Checkout repository
uses: actions/checkout@v4

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

- name: Cache pip dependencies
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-

- name: Update setuptools
run: |
pip install --upgrade pip
pip install setuptools==68.2.2 wheel==0.41.2

- name: Set PYTHONPATH
run: |
echo "PYTHONPATH=$PYTHONPATH:${{ github.workspace }}/src" >> $GITHUB_ENV

- name: Install dependencies
run: |
export PIP_DEFAULT_TIMEOUT=300
pip install -r requirements.txt
pip install -r requirements-test.txt

- name: Show installed pip packages (versions)
run: |
python -m pip list --format=columns

- name: Run tests with coverage
run: |
coverage run -m pytest tests/unit

- name: Generate coverage report
run: |
coverage report -m
36 changes: 18 additions & 18 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,35 +3,35 @@ repos:
rev: v4.3.0
hooks:
- id: check-ast
exclude: ^(tests|samples)/
exclude: ^(tests/legacy|samples)/
- id: sort-simple-yaml
exclude: ^(tests|samples)/
exclude: ^(tests/legacy|samples)/
- id: check-yaml
exclude: |
(?x)^(
meta.yaml
| tests/
| tests/legacy/
| samples/
)$
- id: check-xml
exclude: ^(tests|samples)/
exclude: ^(tests/legacy|samples)/
- id: check-toml
exclude: ^(tests|samples)/
exclude: ^(tests/legacy|samples)/
- id: check-docstring-first
exclude: ^(tests|samples)/
exclude: ^(tests/legacy|samples)/
- id: check-json
exclude: ^(tests|samples)/
exclude: ^(tests/legacy|samples)/
- id: fix-encoding-pragma
exclude: ^(tests|samples)/
exclude: ^(tests/legacy|samples)/
- id: detect-private-key
exclude: ^(tests|samples)/
exclude: ^(tests/legacy|samples)/
- id: trailing-whitespace
exclude: ^(tests|samples)/
exclude: ^(tests/legacy|samples)/
- repo: https://github.com/asottile/add-trailing-comma
rev: v3.1.0
hooks:
- id: add-trailing-comma
exclude: ^(tests|samples)/
exclude: ^(tests/legacy|samples)/
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.7.0
hooks:
Expand All @@ -41,7 +41,7 @@ repos:
pb2\.py$
| grpc\.py$
| ^docs
| ^tests/
| ^tests/legacy/
| ^samples/
| \.html$
)
Expand All @@ -61,21 +61,21 @@ repos:
hooks:
- id: black
args: [ --line-length=79 ]
exclude: ^(tests|samples)/
exclude: ^(tests/legacy|samples)/
- repo: https://github.com/PyCQA/flake8
rev: 6.1.0
hooks:
- id: flake8
args: [ "--extend-ignore=E203"]
exclude: ^(tests|samples)/
exclude: ^(tests/legacy|samples)/
- repo: https://github.com/pylint-dev/pylint
rev: v3.0.2
hooks:
- id: pylint
exclude:
(?x)(
^docs
| ^tests/
| ^tests/legacy/
| ^samples/
| pb2\.py$
| grpc\.py$
Expand Down Expand Up @@ -122,19 +122,19 @@ repos:
hooks:
- id: eslint
files: \.(js|jsx)$
exclude: '(.*js_third_party.*|^tests/|^samples/)'
exclude: '(.*js_third_party.*|^tests/legacy/|^samples/)'
args: [ '--fix' ]
- repo: https://github.com/thibaudcolas/pre-commit-stylelint
rev: v14.4.0
hooks:
- id: stylelint
files: \.(css)$
exclude: '(.*css_third_party.*|^tests/|^samples/)'
exclude: '(.*css_third_party.*|^tests/legacy/|^samples/)'
args: [ '--fix' ]
- repo: https://github.com/pre-commit/mirrors-prettier
rev: 'v3.0.0'
hooks:
- id: prettier
additional_dependencies: [ 'prettier@3.0.0' ]
files: \.(tsx?)$
exclude: ^(tests|samples)/
exclude: ^(tests/legacy|samples)/
1 change: 1 addition & 0 deletions dashscope/api_entities/encryption.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
# mypy: disable-error-code="annotation-unchecked"
import base64
import json
import os
Expand Down
1 change: 1 addition & 0 deletions dashscope/audio/asr/recognition.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
# mypy: disable-error-code="annotation-unchecked"

import json
import os
Expand Down
1 change: 1 addition & 0 deletions dashscope/audio/tts_v2/speech_synthesizer.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
# mypy: disable-error-code="annotation-unchecked"

import json
import platform
Expand Down
1 change: 1 addition & 0 deletions dashscope/multimodal/multimodal_request_params.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
# mypy: disable-error-code="annotation-unchecked"
from dataclasses import dataclass, field
import uuid

Expand Down
1 change: 1 addition & 0 deletions dashscope/tokenizers/qwen_tokenizer.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
# mypy: disable-error-code="annotation-unchecked"

import base64
import unicodedata
Expand Down
1 change: 1 addition & 0 deletions requirements-test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ pytest>=7
pytest-aiohttp
pytest-asyncio
yapf==0.30.0 # use fix version to ensure consistent auto-styling
coverage
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
from http import HTTPStatus

from dashscope import Generation
from tests.http_task_request import HttpRequest
from tests.mock_request_base import MockServerBase
from tests.mock_server import MockServer
from tests.unit.http_task_request import HttpRequest
from tests.unit.mock_request_base import MockServerBase
from tests.unit.mock_server import MockServer

model = Generation.Models.qwen_turbo

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@

from dashscope import Application
from dashscope.app.application_response import ApplicationResponse
from tests.mock_request_base import MockServerBase
from tests.mock_server import MockServer
from tests.unit.mock_request_base import MockServerBase
from tests.unit.mock_server import MockServer


class TestCompletion(MockServerBase):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@

import dashscope
from dashscope.audio.asr import AsrPhraseManager
from tests.constants import TEST_JOB_ID
from tests.mock_request_base import MockRequestBase
from tests.unit.constants import TEST_JOB_ID
from tests.unit.mock_request_base import MockRequestBase

logger = logging.getLogger("dashscope")
logger.setLevel(logging.DEBUG)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import uuid

from dashscope.assistants.files import Files
from tests.mock_request_base import MockServerBase
from tests.mock_server import MockServer
from tests.unit.mock_request_base import MockServerBase
from tests.unit.mock_server import MockServer


class TestAssistantFiles(MockServerBase):
Expand Down
4 changes: 2 additions & 2 deletions tests/test_assistants.py → tests/legacy/test_assistants.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import uuid

from dashscope import Assistants
from tests.mock_request_base import MockServerBase
from tests.mock_server import MockServer
from tests.unit.mock_request_base import MockServerBase
from tests.unit.mock_server import MockServer


class TestAssistants(MockServerBase):
Expand Down
2 changes: 1 addition & 1 deletion tests/test_async_api.py → tests/legacy/test_async_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from dashscope.api_entities.dashscope_response import DashScopeAPIResponse
from dashscope.client.base_api import BaseAsyncApi
from dashscope.common.constants import ApiProtocol, HTTPMethod, TaskStatus
from tests.base_test import BaseTestEnvironment
from tests.unit.base_test import BaseTestEnvironment


class AsyncRequest(BaseAsyncApi):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
AttachmentRoleMessageParam,
UserRoleMessageParam,
)
from tests.mock_request_base import MockServerBase
from tests.mock_server import MockServer
from tests.unit.mock_request_base import MockServerBase
from tests.unit.mock_server import MockServer

model = CodeGeneration.Models.tongyi_lingma_v1

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
from dashscope.aigc.conversation import Conversation, History, HistoryItem
from dashscope.api_entities.dashscope_response import Choice, Message, Role
from dashscope.common.message_manager import MessageManager
from tests.mock_request_base import MockServerBase
from tests.mock_server import MockServer
from tests.unit.mock_request_base import MockServerBase
from tests.unit.mock_server import MockServer


def request_generator():
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
from http import HTTPStatus

from dashscope import Deployments
from tests.constants import TEST_JOB_ID
from tests.mock_request_base import MockRequestBase
from tests.unit.constants import TEST_JOB_ID
from tests.unit.mock_request_base import MockRequestBase


class TestDeploymentRequest(MockRequestBase):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from http import HTTPStatus

from dashscope import Files
from tests.mock_request_base import MockRequestBase
from tests.unit.mock_request_base import MockRequestBase


class TestFileRequest(MockRequestBase):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
from http import HTTPStatus

from dashscope import FineTunes
from tests.constants import TEST_JOB_ID
from tests.mock_request_base import MockServerBase
from tests.mock_server import MockServer
from tests.unit.constants import TEST_JOB_ID
from tests.unit.mock_request_base import MockServerBase
from tests.unit.mock_server import MockServer

# yapf: disable

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
from http import HTTPStatus

from dashscope import Models
from tests.constants import TEST_JOB_ID
from tests.mock_request_base import MockRequestBase
from tests.unit.constants import TEST_JOB_ID
from tests.unit.mock_request_base import MockRequestBase


class TestModelRequest(MockRequestBase):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from dashscope import ImageSynthesis
from dashscope.common.constants import TaskStatus
from tests.base_test import BaseTestEnvironment
from tests.unit.base_test import BaseTestEnvironment


class TestAsyncImageSynthesisRequest(BaseTestEnvironment):
Expand Down
4 changes: 2 additions & 2 deletions tests/test_messages.py → tests/legacy/test_messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

from dashscope import Messages
from dashscope.threads.messages.files import Files
from tests.mock_request_base import MockServerBase
from tests.mock_server import MockServer
from tests.unit.mock_request_base import MockServerBase
from tests.unit.mock_server import MockServer


class TestMessages(MockServerBase):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@
ClientInfo,
RequestParameters,
Device,
RequestToRespondParameters,
)
from tests.base_test import BaseTestEnvironment
from tests.unit.base_test import BaseTestEnvironment

logger = logging.getLogger("dashscope")
logger.setLevel(logging.DEBUG)
Expand Down
4 changes: 2 additions & 2 deletions tests/test_rerank.py → tests/legacy/test_rerank.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import uuid

from dashscope import TextReRank
from tests.mock_request_base import MockServerBase
from tests.mock_server import MockServer
from tests.unit.mock_request_base import MockServerBase
from tests.unit.mock_server import MockServer


class TestReRank(MockServerBase):
Expand Down
4 changes: 2 additions & 2 deletions tests/test_runs.py → tests/legacy/test_runs.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import uuid

from dashscope import Runs, Steps
from tests.mock_request_base import MockServerBase
from tests.mock_server import MockServer
from tests.unit.mock_request_base import MockServerBase
from tests.unit.mock_server import MockServer


class TestRuns(MockServerBase):
Expand Down
Loading