diff --git a/annofabapi/__version__.py b/annofabapi/__version__.py index 6fccdee4..00d1ab54 100644 --- a/annofabapi/__version__.py +++ b/annofabapi/__version__.py @@ -1 +1 @@ -__version__ = '0.15.1' +__version__ = '0.15.2' diff --git a/annofabapi/api.py b/annofabapi/api.py index 431d9c28..fc72040f 100644 --- a/annofabapi/api.py +++ b/annofabapi/api.py @@ -269,10 +269,7 @@ def refresh_token(self) -> Optional[Tuple[Dict[str, Any], requests.Response]]: # Public Method : 労務関係API (将来的に大きく変更される可能性があります) # 労務管理がりようできる組織は限られています。利用する場合は、AnnoFabにお問い合わせください。 ######################################### - def get_labor_control( - self, - query_params: Optional[Dict[str, Any]] = None - ) -> Tuple[Any, requests.Response]: + def get_labor_control(self, query_params: Optional[Dict[str, Any]] = None) -> Tuple[Any, requests.Response]: """労務管理関連データを一括で取得します。 @@ -291,10 +288,7 @@ def get_labor_control( } return self._request_wrapper(http_method, url_path, **keyword_params) - def put_labor_control( - self, - request_body: Dict[str, Any] - ) -> Tuple[Any, requests.Response]: + def put_labor_control(self, request_body: Dict[str, Any]) -> Tuple[Any, requests.Response]: """労務管理関連データを更新します。 @@ -313,10 +307,7 @@ def put_labor_control( } return self._request_wrapper(http_method, url_path, **keyword_params) - def delete_labor_control( - self, - data_id: str - ) -> Tuple[Any, requests.Response]: + def delete_labor_control(self, data_id: str) -> Tuple[Any, requests.Response]: """労務管理関連データを削除します。 diff --git a/annofabapi/dataclass/my.py b/annofabapi/dataclass/my.py new file mode 100644 index 00000000..954c8d5f --- /dev/null +++ b/annofabapi/dataclass/my.py @@ -0,0 +1,87 @@ +# flake8: noqa: W291 +# pylint: disable=too-many-lines,trailing-whitespace +""" +annofabapiのmodelをDataClassで定義したクラス + +Note: + このファイルはopenapi-generatorで自動生成される。詳細は generate/README.mdを参照. + oneOf, allOfなどは正しく表現できない可能性がある。 +""" + +import warnings # pylint: disable=unused-import +from dataclasses import dataclass +from typing import Any, Dict, List, NewType, Optional, Tuple, Union # pylint: disable=unused-import + +from dataclasses_json import dataclass_json + +from annofabapi.dataclass.organization import OrganizationSummary +from annofabapi.models import AccountAuthority, OrganizationMemberRole, OrganizationMemberStatus, PricePlan + + +@dataclass_json +@dataclass +class MyOrganization: + """ + + """ + organization_id: Optional[str] + """""" + + name: Optional[str] + """""" + + email: Optional[str] + """""" + + price_plan: Optional[PricePlan] + """""" + + summary: Optional[OrganizationSummary] + """""" + + created_datetime: Optional[str] + """""" + + updated_datetime: Optional[str] + """""" + + my_role: Optional[OrganizationMemberRole] + """""" + + my_status: Optional[OrganizationMemberStatus] + """""" +@dataclass_json +@dataclass +class MyAccount: + """ + + """ + account_id: str + """""" + + user_id: str + """""" + + username: str + """""" + + email: str + """""" + + lang: str + """""" + + keylayout: str + """""" + + authority: AccountAuthority + """""" + + updated_datetime: Optional[str] + """""" + + reset_requested_email: Optional[str] + """""" + + errors: List[str] + """""" diff --git a/annofabapi/wrapper.py b/annofabapi/wrapper.py index 9d800c8c..51b417b7 100644 --- a/annofabapi/wrapper.py +++ b/annofabapi/wrapper.py @@ -10,8 +10,8 @@ import annofabapi.utils from annofabapi import AnnofabApi from annofabapi.exceptions import AnnofabApiException -from annofabapi.models import (AnnotationSpecs, InputData, Inspection, JobInfo, OrganizationMember, Project, - ProjectMember, SupplementaryData, Task) +from annofabapi.models import (AnnotationSpecs, InputData, Inspection, JobInfo, MyOrganization, OrganizationMember, + Project, ProjectMember, SupplementaryData, Task) logger = logging.getLogger(__name__) @@ -75,7 +75,7 @@ def _get_all_objects(func_get_list: Callable, limit: int, **kwargs_for_func_get_ get_XXX関数で取得した情報の一覧 """ - arg_query_params = kwargs_for_func_get_list['query_params'] + arg_query_params = kwargs_for_func_get_list.get('query_params') copied_query_params = copy.deepcopy(arg_query_params) if arg_query_params is not None else {} all_objects: List[Dict[str, Any]] = [] @@ -387,6 +387,18 @@ def search_updated_inspections(arg_inspection: Inspection) -> bool: content = self.api.batch_update_inspections(project_id, task_id, input_data_id, req_inspection)[0] return content + ######################################### + # Public Method : AfMyApi + ######################################### + def get_all_my_organizations(self) -> List[MyOrganization]: + """ + 所属しているすべての組織一覧を取得する + + Returns: + すべての所属一覧 + """ + return self._get_all_objects(self.api.get_my_organizations, limit=200) + ######################################### # Public Method : AfOrganizationApi ######################################### diff --git a/docs/dataclass.rst b/docs/dataclass.rst index 1b328311..e225d826 100644 --- a/docs/dataclass.rst +++ b/docs/dataclass.rst @@ -27,6 +27,10 @@ annofabapi.dataclass.job module .. automodule:: annofabapi.dataclass.job :members: +annofabapi.dataclass.my module +------------------------------ +.. automodule:: annofabapi.dataclass.my + :members: annofabapi.dataclass.organization module ---------------------------------------- diff --git a/generate/generate.sh b/generate/generate.sh index 4efbe24d..ef2b1832 100755 --- a/generate/generate.sh +++ b/generate/generate.sh @@ -146,6 +146,11 @@ declare -a model_files=(${MODELS_DIR}/job_info.py) cat partial-header/dataclass/common.py partial-header/dataclass/job.py \ ${model_files[@]} > ../annofabapi/dataclass/job.py +# My +declare -a model_files=(${MODELS_DIR}/my_organization.py ${MODELS_DIR}/my_account.py) +cat partial-header/dataclass/common.py partial-header/dataclass/my.py \ + ${model_files[@]} > ../annofabapi/dataclass/my.py + # Organization declare -a model_files=(${MODELS_DIR}/organization_activity.py ${MODELS_DIR}/organization_summary.py ${MODELS_DIR}/organization.py) cat partial-header/dataclass/common.py partial-header/dataclass/organization.py \ diff --git a/generate/partial-header/dataclass/my.py b/generate/partial-header/dataclass/my.py new file mode 100644 index 00000000..c1c360c2 --- /dev/null +++ b/generate/partial-header/dataclass/my.py @@ -0,0 +1,2 @@ +from annofabapi.models import OrganizationMemberRole, OrganizationMemberStatus, PricePlan, AccountAuthority +from annofabapi.dataclass.organization import OrganizationSummary diff --git a/tests/data/dataclass/my-account.json b/tests/data/dataclass/my-account.json new file mode 100644 index 00000000..2e19674d --- /dev/null +++ b/tests/data/dataclass/my-account.json @@ -0,0 +1,13 @@ +{ + "account_id": "12345678-abcd-1234-abcd-1234abcd5678", + "user_id": "test_user_id", + "username": "test_user_name", + "email": "test_user@example.com", + "reset_requested_email": null, + "lang": "ja-JP", + "keylayout": "ja-JP", + "authority": "user", + "errors": [], + "updated_datetime": "2019-08-13T22:18:31.594+09:00", + "is_external_account": false +} diff --git a/tests/data/dataclass/my-organization.json b/tests/data/dataclass/my-organization.json new file mode 100644 index 00000000..22733d25 --- /dev/null +++ b/tests/data/dataclass/my-organization.json @@ -0,0 +1,13 @@ +{ + "organization_id": "32345678-abcd-1234-abcd-1234abcd5678", + "name": "test-organization", + "email": "test@example.com", + "price_plan": "free", + "summary": { + "last_tasks_updated_datetime": "2019-09-03T18:05:01.508+09:00" + }, + "created_datetime": "2018-05-09T07:47:47.913+09:00", + "updated_datetime": "2018-05-09T07:47:47.913+09:00", + "my_role": "owner", + "my_status": "active" +} \ No newline at end of file diff --git a/tests/test_api.py b/tests/test_api.py index 9b9170ed..376e99b0 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -65,9 +65,9 @@ def test_my(): my_project_members, _ = api.get_my_project_members() assert len(my_project_members) > 0 - print(f"get_my_organizations") - my_organizations, _ = api.get_my_organizations() - assert len(my_organizations['list']) > 0 + print(f"get_my_organizations in wrapper.get_all_my_organizations") + my_organizations = wrapper.get_all_my_organizations() + assert len(my_organizations) > 0 print(f"get_my_projects") my_projects, _ = api.get_my_projects() diff --git a/tests/test_dataclass.py b/tests/test_dataclass.py index 7dd86742..bc8720a9 100644 --- a/tests/test_dataclass.py +++ b/tests/test_dataclass.py @@ -10,6 +10,7 @@ from annofabapi.dataclass.input import InputData from annofabapi.dataclass.inspection import Inspection from annofabapi.dataclass.job import JobInfo +from annofabapi.dataclass.my import MyAccount, MyOrganization from annofabapi.dataclass.organization import Organization, OrganizationActivity from annofabapi.dataclass.organization_member import OrganizationMember from annofabapi.dataclass.project import Project @@ -43,121 +44,147 @@ annofab_user_id = service.api.login_user_id -def test_annotation(): - annotation_list = service.wrapper.get_all_annotation_list(project_id, query_params={'query': {'task_id': task_id}}) - single_annotation = SingleAnnotation.from_dict(annotation_list[0]) - assert type(single_annotation) == SingleAnnotation +class TestAnnotation: + def test_simple_annotation(self): + annotation_list = service.wrapper.get_all_annotation_list(project_id, + query_params={'query': { + 'task_id': task_id + }}) + single_annotation = SingleAnnotation.from_dict(annotation_list[0]) + assert type(single_annotation) == SingleAnnotation - dict_simple_annotation, _ = service.api.get_annotation(project_id, task_id, input_data_id) - simple_annotation = SimpleAnnotation.from_dict(dict_simple_annotation) - assert type(simple_annotation) == SimpleAnnotation + def test_full_annotation(self): + dict_simple_annotation, _ = service.api.get_annotation(project_id, task_id, input_data_id) + simple_annotation = SimpleAnnotation.from_dict(dict_simple_annotation) + assert type(simple_annotation) == SimpleAnnotation -def test_annotation_specs(): - dict_annotation_specs, _ = service.api.get_annotation_specs(project_id) - annotation_specs = AnnotationSpecs.from_dict(dict_annotation_specs) - assert type(annotation_specs) == AnnotationSpecs +class TestAnnotationSpecs: + def test_annotation_specs(self): + dict_annotation_specs, _ = service.api.get_annotation_specs(project_id) + annotation_specs = AnnotationSpecs.from_dict(dict_annotation_specs) + assert type(annotation_specs) == AnnotationSpecs -def test_input(): - input_data_list = service.wrapper.get_all_input_data_list(project_id, query_params={'task_id': task_id}) - input_data = InputData.from_dict(input_data_list[0]) - assert type(input_data) == InputData +class TestInput: + def test_input_data(self): + input_data_list = service.wrapper.get_all_input_data_list(project_id, query_params={'task_id': task_id}) + input_data = InputData.from_dict(input_data_list[0]) + assert type(input_data) == InputData -def test_inspection(): - inspection_list, _ = service.api.get_inspections(project_id, task_id, input_data_id) - inspection = Inspection.from_dict(inspection_list[0]) - assert type(inspection) == Inspection +class TestInspection: + def test_inspection(self): + inspection_list, _ = service.api.get_inspections(project_id, task_id, input_data_id) + inspection = Inspection.from_dict(inspection_list[0]) + assert type(inspection) == Inspection -def test_job(): - job_list = service.wrapper.get_all_project_job(project_id, query_params={"type": "gen-tasks"}) - job = JobInfo.from_dict(job_list[0]) - assert type(job) == JobInfo +class TestJob: + def test_job(self): + job_list = service.wrapper.get_all_project_job(project_id, query_params={"type": "gen-tasks"}) + job = JobInfo.from_dict(job_list[0]) + assert type(job) == JobInfo -def test_organization(): - dict_organization, _ = service.api.get_organization(organization_name) - organization = Organization.from_dict(dict_organization) - assert type(organization) == Organization +class TestMy: + def test_my_organization(self): + my_organizations = service.wrapper.get_all_my_organizations() + my_organization = MyOrganization.from_dict(my_organizations[0]) + assert type(my_organization) == MyOrganization - dict_organization_activity, _ = service.api.get_organization_activity(organization_name) - organization_activity = OrganizationActivity.from_dict(dict_organization_activity) - assert type(organization_activity) == OrganizationActivity + def test_my_account(self): + dict_my_account, _ = service.api.get_my_account() + my_account = MyAccount.from_dict(dict_my_account) + assert type(my_account) == MyAccount -def test_organization_member(): - dict_organization_member, _ = service.api.get_organization_member(organization_name, annofab_user_id) - organization_member = OrganizationMember.from_dict(dict_organization_member) - assert type(organization_member) == OrganizationMember +class TestOrganization: + def test_organization(self): + dict_organization, _ = service.api.get_organization(organization_name) + organization = Organization.from_dict(dict_organization) + assert type(organization) == Organization + def test_organization_activity(self): + dict_organization_activity, _ = service.api.get_organization_activity(organization_name) + organization_activity = OrganizationActivity.from_dict(dict_organization_activity) + assert type(organization_activity) == OrganizationActivity -def test_project(): - dict_project, _ = service.api.get_project(project_id) - project = Project.from_dict(dict_project) - assert type(project) == Project +class TestOrganizationMember: + def test_organization_member(self): + dict_organization_member, _ = service.api.get_organization_member(organization_name, annofab_user_id) + organization_member = OrganizationMember.from_dict(dict_organization_member) + assert type(organization_member) == OrganizationMember -def test_project_member(): - dict_project_member, _ = service.api.get_project_member(project_id, annofab_user_id) - project_member = ProjectMember.from_dict(dict_project_member) - assert type(project_member) == ProjectMember +class TestProject: + def test_project(self): + dict_project, _ = service.api.get_project(project_id) + project = Project.from_dict(dict_project) + assert type(project) == Project -def test_statistics_get_task_statistics(): - stat_list, _ = service.api.get_task_statistics(project_id) - stat = ProjectTaskStatisticsHistory.from_dict(stat_list[0]) - assert type(stat) == ProjectTaskStatisticsHistory +class TestProjectMember: + def test_project_member(self): + dict_project_member, _ = service.api.get_project_member(project_id, annofab_user_id) + project_member = ProjectMember.from_dict(dict_project_member) + assert type(project_member) == ProjectMember -def test_statistics_get_account_statistics(): - stat_list, _ = service.api.get_account_statistics(project_id) - stat = ProjectAccountStatistics.from_dict(stat_list[0]) - assert type(stat) == ProjectAccountStatistics +class TestStatistics: + def test_statistics_get_task_statistics(self): + stat_list, _ = service.api.get_task_statistics(project_id) + stat = ProjectTaskStatisticsHistory.from_dict(stat_list[0]) + assert type(stat) == ProjectTaskStatisticsHistory -def test_statistics_get_inspection_statistics(): - stat_list, _ = service.api.get_inspection_statistics(project_id) - stat = InspectionStatistics.from_dict(stat_list[0]) - assert type(stat) == InspectionStatistics + def test_statistics_get_account_statistics(self): + stat_list, _ = service.api.get_account_statistics(project_id) + stat = ProjectAccountStatistics.from_dict(stat_list[0]) + assert type(stat) == ProjectAccountStatistics + def test_statistics_get_inspection_statistics(self): + stat_list, _ = service.api.get_inspection_statistics(project_id) + stat = InspectionStatistics.from_dict(stat_list[0]) + assert type(stat) == InspectionStatistics -def test_statistics_get_task_phase_statistics(): - stat_list, _ = service.api.get_task_phase_statistics(project_id) - stat = TaskPhaseStatistics.from_dict(stat_list[0]) - assert type(stat) == TaskPhaseStatistics + def test_statistics_get_task_phase_statistics(self): + stat_list, _ = service.api.get_task_phase_statistics(project_id) + stat = TaskPhaseStatistics.from_dict(stat_list[0]) + assert type(stat) == TaskPhaseStatistics + def test_statistics_get_label_statistics(self): + stat_list, _ = service.api.get_label_statistics(project_id) + stat = LabelStatistics.from_dict(stat_list[0]) + assert type(stat) == LabelStatistics -def test_statistics_get_label_statistics(): - stat_list, _ = service.api.get_label_statistics(project_id) - stat = LabelStatistics.from_dict(stat_list[0]) - assert type(stat) == LabelStatistics + def test_statistics_get_worktime_statistics(self): + stat_list = service.wrapper.get_worktime_statistics(project_id) + stat = WorktimeStatistics.from_dict(stat_list[0]) + assert type(stat) == WorktimeStatistics -def test_statistics_get_worktime_statistics(): - stat_list = service.wrapper.get_worktime_statistics(project_id) - stat = WorktimeStatistics.from_dict(stat_list[0]) - assert type(stat) == WorktimeStatistics +class TestSupplementary: + def test_supplementary(self): + supplementary_data_list, _ = service.api.get_supplementary_data_list(project_id, input_data_id) + supplementary_data = SupplementaryData.from_dict(supplementary_data_list[0]) + assert type(supplementary_data) == SupplementaryData -def test_supplementary(): - supplementary_data_list, _ = service.api.get_supplementary_data_list(project_id, input_data_id) - supplementary_data = SupplementaryData.from_dict(supplementary_data_list[0]) - assert type(supplementary_data) == SupplementaryData +class TestTask: + def test_task(self): + dict_task, _ = service.api.get_task(project_id, task_id) + task = Task.from_dict(dict_task) + assert type(task) == Task + def test_task_history(self): + task_histories, _ = service.api.get_task_histories(project_id, task_id) + task_history = TaskHistory.from_dict(task_histories[0]) + assert type(task_history) == TaskHistory -def test_task(): - dict_task, _ = service.api.get_task(project_id, task_id) - task = Task.from_dict(dict_task) - assert type(task) == Task - task_histories, _ = service.api.get_task_histories(project_id, task_id) - task_history = TaskHistory.from_dict(task_histories[0]) - assert type(task_history) == TaskHistory - - -def test_webhook(): - webhook_list = service.api.get_webhooks(project_id)[0] - webhook = Webhook.from_dict(webhook_list[0]) - assert type(webhook) == Webhook +class TestWebhook: + def test_webhook(self): + webhook_list = service.api.get_webhooks(project_id)[0] + webhook = Webhook.from_dict(webhook_list[0]) + assert type(webhook) == Webhook diff --git a/tests/test_local_dataclass.py b/tests/test_local_dataclass.py index ab337f90..67b49181 100644 --- a/tests/test_local_dataclass.py +++ b/tests/test_local_dataclass.py @@ -8,6 +8,7 @@ from annofabapi.dataclass.input import InputData from annofabapi.dataclass.inspection import Inspection from annofabapi.dataclass.job import JobInfo +from annofabapi.dataclass.my import MyAccount, MyOrganization from annofabapi.dataclass.organization import Organization, OrganizationActivity from annofabapi.dataclass.organization_member import OrganizationMember from annofabapi.dataclass.project import Project @@ -26,163 +27,190 @@ test_dir = Path('./tests/data/dataclass') -def test_annotation(): - simple_annotaion_json = test_dir / "simple-annotation.json" - with simple_annotaion_json.open(encoding="utf-8") as f: - dict_full_annotation = json.load(f) - simple_annotion = SimpleAnnotation.from_dict(dict_full_annotation) - assert type(simple_annotion) == SimpleAnnotation - - full_annotaion_json = test_dir / "full-annotation.json" - with full_annotaion_json.open(encoding="utf-8") as f: - dict_full_annotation = json.load(f) - full_annotion = FullAnnotation.from_dict(dict_full_annotation) - assert type(full_annotion) == FullAnnotation - - -def test_annotation_specs(): - annotaion_specs_json = test_dir / "annotation-specs.json" - with annotaion_specs_json.open(encoding="utf-8") as f: - dict_annotation_specs = json.load(f) - annotation_specs = AnnotationSpecs.from_dict(dict_annotation_specs) - assert type(annotation_specs) == AnnotationSpecs - - -def test_input(): - input_data_json = test_dir / "input-data.json" - with input_data_json.open(encoding="utf-8") as f: - dict_input_data = json.load(f) - input_data = InputData.from_dict(dict_input_data) - assert type(input_data) == InputData - - -def test_inspection(): - inspection_json = test_dir / "inspection.json" - with inspection_json.open(encoding="utf-8") as f: - dict_inspection = json.load(f) - inspection = Inspection.from_dict(dict_inspection) - assert type(inspection) == Inspection - - -def test_job(): - job_json = test_dir / "job.json" - with job_json.open(encoding="utf-8") as f: - dict_job = json.load(f) - job = JobInfo.from_dict(dict_job) - assert type(job) == JobInfo - - -def test_organization(): - organization_activity_json = test_dir / "organization.json" - with organization_activity_json.open(encoding="utf-8") as f: - dict_organization = json.load(f) - organization = Organization.from_dict(dict_organization) - assert type(organization) == Organization - - organization_activity_json = test_dir / "organization-activity.json" - with organization_activity_json.open(encoding="utf-8") as f: - dict_organization_activity = json.load(f) - organization_activity = OrganizationActivity.from_dict(dict_organization_activity) - assert type(organization_activity) == OrganizationActivity - - -def test_organization_member(): - organization_member_json = test_dir / "organization-member.json" - with organization_member_json.open(encoding="utf-8") as f: - dict_organization_member = json.load(f) - organization_member = OrganizationMember.from_dict(dict_organization_member) - assert type(organization_member) == OrganizationMember - - -def test_project(): - project_json = test_dir / "project.json" - with project_json.open(encoding="utf-8") as f: - dict_project = json.load(f) - project = Project.from_dict(dict_project) - assert type(project) == Project - - -def test_project_member(): - project_member_json = test_dir / "project-member.json" - with project_member_json.open(encoding="utf-8") as f: - dict_project_member = json.load(f) - project_member = ProjectMember.from_dict(dict_project_member) - assert type(project_member) == ProjectMember - - -def test_statistics_get_task_statistics(): - statistics_json = test_dir / "task_statistics.json" - with statistics_json.open(encoding="utf-8") as f: - dict_stat = json.load(f) - stat = ProjectTaskStatisticsHistory.from_dict(dict_stat) - assert type(stat) == ProjectTaskStatisticsHistory - - -def test_statistics_get_account_statistics(): - statistics_json = test_dir / "account_statistics.json" - with statistics_json.open(encoding="utf-8") as f: - dict_stat = json.load(f) - stat = ProjectAccountStatistics.from_dict(dict_stat) - assert type(stat) == ProjectAccountStatistics - - -def test_statistics_get_inspection_statistics(): - statistics_json = test_dir / "inspection_statistics.json" - with statistics_json.open(encoding="utf-8") as f: - dict_stat = json.load(f) - stat = InspectionStatistics.from_dict(dict_stat) - assert type(stat) == InspectionStatistics - - -def test_statistics_get_task_phase_statistics(): - statistics_json = test_dir / "task_phase_statistics.json" - with statistics_json.open(encoding="utf-8") as f: - dict_stat = json.load(f) - stat = TaskPhaseStatistics.from_dict(dict_stat) - assert type(stat) == TaskPhaseStatistics - - -def test_statistics_get_label_statistics(): - statistics_json = test_dir / "label_statistics.json" - with statistics_json.open(encoding="utf-8") as f: - dict_stat = json.load(f) - stat = LabelStatistics.from_dict(dict_stat) - assert type(stat) == LabelStatistics - - -def test_statistics_get_worktime_statistics(): - statistics_json = test_dir / "worktime_statistics.json" - with statistics_json.open(encoding="utf-8") as f: - dict_stat = json.load(f) - stat = WorktimeStatistics.from_dict(dict_stat) - assert type(stat) == WorktimeStatistics - - -def test_supplementary(): - supplementary_data_json = test_dir / "supplementary-data.json" - with supplementary_data_json.open(encoding="utf-8") as f: - dict_supplementary_data = json.load(f) - supplementary_data = SupplementaryData.from_dict(dict_supplementary_data) - assert type(supplementary_data) == SupplementaryData - - -def test_task(): - task_json = test_dir / "task.json" - with task_json.open(encoding="utf-8") as f: - dict_task = json.load(f) - task = Task.from_dict(dict_task) - assert type(task) == Task - - task_history_json = test_dir / "task-history.json" - with task_history_json.open(encoding="utf-8") as f: - dict_task_history = json.load(f) - task_history = TaskHistory.from_dict(dict_task_history) - assert type(task_history) == TaskHistory - - -def test_webhook(): - webhook_json = test_dir / "webhook.json" - with webhook_json.open(encoding="utf-8") as f: - dict_webhook = json.load(f) - webhook = Webhook.from_dict(dict_webhook) - assert type(webhook) == Webhook +class TestAnnotation: + def test_simple_annotation(self): + simple_annotaion_json = test_dir / "simple-annotation.json" + with simple_annotaion_json.open(encoding="utf-8") as f: + dict_full_annotation = json.load(f) + simple_annotion = SimpleAnnotation.from_dict(dict_full_annotation) + assert type(simple_annotion) == SimpleAnnotation + + def test_full_annotation(self): + full_annotaion_json = test_dir / "full-annotation.json" + with full_annotaion_json.open(encoding="utf-8") as f: + dict_full_annotation = json.load(f) + full_annotion = FullAnnotation.from_dict(dict_full_annotation) + assert type(full_annotion) == FullAnnotation + + +class TestAnnotationSpecs: + def test_annotation_specs(self): + annotaion_specs_json = test_dir / "annotation-specs.json" + with annotaion_specs_json.open(encoding="utf-8") as f: + dict_annotation_specs = json.load(f) + annotation_specs = AnnotationSpecs.from_dict(dict_annotation_specs) + assert type(annotation_specs) == AnnotationSpecs + + +class TestInput: + def test_input_data(self): + input_data_json = test_dir / "input-data.json" + with input_data_json.open(encoding="utf-8") as f: + dict_input_data = json.load(f) + input_data = InputData.from_dict(dict_input_data) + assert type(input_data) == InputData + + +class TestInspection: + def test_inspection(self): + inspection_json = test_dir / "inspection.json" + with inspection_json.open(encoding="utf-8") as f: + dict_inspection = json.load(f) + inspection = Inspection.from_dict(dict_inspection) + assert type(inspection) == Inspection + + +class TestJob: + def test_job(self): + job_json = test_dir / "job.json" + with job_json.open(encoding="utf-8") as f: + dict_job = json.load(f) + job = JobInfo.from_dict(dict_job) + assert type(job) == JobInfo + + +class TestMy: + def test_my_organization(self): + json_path = test_dir / "my-organization.json" + with json_path.open(encoding="utf-8") as f: + dict_data = json.load(f) + data = MyOrganization.from_dict(dict_data) + assert type(data) == MyOrganization + + def test_my_account(self): + json_path = test_dir / "my-account.json" + with json_path.open(encoding="utf-8") as f: + dict_data = json.load(f) + data = MyAccount.from_dict(dict_data) + assert type(data) == MyAccount + + +class TestOrganization: + def test_organization(self): + organization_activity_json = test_dir / "organization.json" + with organization_activity_json.open(encoding="utf-8") as f: + dict_organization = json.load(f) + organization = Organization.from_dict(dict_organization) + assert type(organization) == Organization + + def test_organization_activity(self): + organization_activity_json = test_dir / "organization-activity.json" + with organization_activity_json.open(encoding="utf-8") as f: + dict_organization_activity = json.load(f) + organization_activity = OrganizationActivity.from_dict(dict_organization_activity) + assert type(organization_activity) == OrganizationActivity + + +class TestOrganizationMember: + def test_organization_member(self): + organization_member_json = test_dir / "organization-member.json" + with organization_member_json.open(encoding="utf-8") as f: + dict_organization_member = json.load(f) + organization_member = OrganizationMember.from_dict(dict_organization_member) + assert type(organization_member) == OrganizationMember + + +class TestProject: + def test_project(self): + project_json = test_dir / "project.json" + with project_json.open(encoding="utf-8") as f: + dict_project = json.load(f) + project = Project.from_dict(dict_project) + assert type(project) == Project + + +class TestProjectMember: + def test_project_member(self): + project_member_json = test_dir / "project-member.json" + with project_member_json.open(encoding="utf-8") as f: + dict_project_member = json.load(f) + project_member = ProjectMember.from_dict(dict_project_member) + assert type(project_member) == ProjectMember + + +class TestStatistics: + def test_statistics_get_task_statistics(self): + statistics_json = test_dir / "task_statistics.json" + with statistics_json.open(encoding="utf-8") as f: + dict_stat = json.load(f) + stat = ProjectTaskStatisticsHistory.from_dict(dict_stat) + assert type(stat) == ProjectTaskStatisticsHistory + + def test_statistics_get_account_statistics(self): + statistics_json = test_dir / "account_statistics.json" + with statistics_json.open(encoding="utf-8") as f: + dict_stat = json.load(f) + stat = ProjectAccountStatistics.from_dict(dict_stat) + assert type(stat) == ProjectAccountStatistics + + def test_statistics_get_inspection_statistics(self): + statistics_json = test_dir / "inspection_statistics.json" + with statistics_json.open(encoding="utf-8") as f: + dict_stat = json.load(f) + stat = InspectionStatistics.from_dict(dict_stat) + assert type(stat) == InspectionStatistics + + def test_statistics_get_task_phase_statistics(self): + statistics_json = test_dir / "task_phase_statistics.json" + with statistics_json.open(encoding="utf-8") as f: + dict_stat = json.load(f) + stat = TaskPhaseStatistics.from_dict(dict_stat) + assert type(stat) == TaskPhaseStatistics + + def test_statistics_get_label_statistics(self): + statistics_json = test_dir / "label_statistics.json" + with statistics_json.open(encoding="utf-8") as f: + dict_stat = json.load(f) + stat = LabelStatistics.from_dict(dict_stat) + assert type(stat) == LabelStatistics + + def test_statistics_get_worktime_statistics(self): + statistics_json = test_dir / "worktime_statistics.json" + with statistics_json.open(encoding="utf-8") as f: + dict_stat = json.load(f) + stat = WorktimeStatistics.from_dict(dict_stat) + assert type(stat) == WorktimeStatistics + + +class TestSupplementary: + def test_supplementary(self): + supplementary_data_json = test_dir / "supplementary-data.json" + with supplementary_data_json.open(encoding="utf-8") as f: + dict_supplementary_data = json.load(f) + supplementary_data = SupplementaryData.from_dict(dict_supplementary_data) + assert type(supplementary_data) == SupplementaryData + + +class TestTask: + def test_task(self): + task_json = test_dir / "task.json" + with task_json.open(encoding="utf-8") as f: + dict_task = json.load(f) + task = Task.from_dict(dict_task) + assert type(task) == Task + + def test_task_history(self): + task_history_json = test_dir / "task-history.json" + with task_history_json.open(encoding="utf-8") as f: + dict_task_history = json.load(f) + task_history = TaskHistory.from_dict(dict_task_history) + assert type(task_history) == TaskHistory + + +class TestWebhook: + def test_webhook(self): + webhook_json = test_dir / "webhook.json" + with webhook_json.open(encoding="utf-8") as f: + dict_webhook = json.load(f) + webhook = Webhook.from_dict(dict_webhook) + assert type(webhook) == Webhook