Skip to content

グループ管理連携機能開発のテストケース追加 - #37

Draft
ndnhat1 wants to merge 13 commits into
RCOSDP:mainfrom
lieunguyen-tma:feature/nii_grdm_202510_step2/2.3_mapcore_group_management
Draft

ndnhat1 wants to merge 13 commits into
RCOSDP:mainfrom
lieunguyen-tma:feature/nii_grdm_202510_step2/2.3_mapcore_group_management

Conversation

@ndnhat1

@ndnhat1 ndnhat1 commented Apr 28, 2026 •

Copy link
Copy Markdown

Purpose

グループ管理連携機能開発に対するテストケースを追加する。

Changes

本PRの変更を「(1) グループ管理連携テスト本体」と「(2) それをCIで実行するための共有CI基盤の修正」に分けて記載する。

(1) グループ管理連携テスト本体(本リポジトリ内のみ/共有CIへの影響なし)

MapCoreグループ管理連携機能のテスト手順を追加し、実行可能にするための変更。

  • テスト手順-グループ-プロジェクトに対するグループ機能①.ipynb を追加。主なテスト内容:プロジェクトに対するグループの付与・権限変更・削除、グループメンバーによるプロジェクトアクセス確認。
  • テスト手順-グループ-プロジェクトに対するグループ機能②.ipynb を追加。主なテスト内容:複数グループのプロジェクト付与、権限の上書き・組み合わせ確認。
  • テスト手順-グループ-グループ権限によるプロジェクトに対する操作.ipynb を追加。主なテスト内容:グループ権限(read/write/admin)別のプロジェクト操作可否の検証。
  • テスト手順-グループ-グループ権限によるコンポーネントに対する操作.ipynb を追加。主なテスト内容:グループ権限によるコンポーネント(ストレージ・アドオン)操作可否の検証。
  • テスト手順-グループ-アドオン利用制御.ipynb を追加。主なテスト内容:グループ権限によるアドオン利用制御(有効化・無効化・設定変更)の検証。
  • 取りまとめ-グループ.ipynb を追加。CI・手動実行のエントリポイントとして上記全テストノートブックを run_notebook で順次実行する。必要なパラメータ(ユーザー情報・グループ名等)をすべて受け取る。
  • 結合試験-実行.ipynb:グループ管理連携機能テスト用ユーザー・グループ名・実行フラグ(mapcore_group_enabled)などのパラメータを追加し、取りまとめ-グループ.ipynb の run_notebook 実行セルを追加。

(2) グループテストをCIで実行するための共有CI基盤の修正

(2-a) テストユーザー追加・グループデータ作成 — setup_test_data.py の修正

  • testuser6@example.com(fullname: Test User 6)を新規追加。グループテスト専用ユーザーのためプロジェクトは事前作成しない(skip_project: true)。
  • MAPCORE_GROUP_ENABLED=true の場合のみ、以下のグループ・メンバーシップを作成(MapCoreGroup.objects.get_or_create / MapCoreUserGroup.objects.get_or_create):
    • GroupA:teststaff(機関管理者) + testuser2
    • GroupB:teststaff(機関管理者) + testuser6
    • GroupC:teststaff(機関管理者) + testuser4
    • GroupD:teststaff(機関管理者) + testuser5
    • testuser1 はいずれのグループにも所属させない(非メンバー動作の検証用)
    • 既存エントリは is_deleted=false にリストアして再利用(冪等性を確保)。

(2-b) 新テストグループ追加・フラグ追加 — e2e-test.yml の修正

  • 全テストグループに mapcore_group_enabled フィールドを追加(既存グループはすべて false)。
  • 新テストグループ user-mapcore-group(Display: "User Tests (Mapcore Group)")を追加。include_admin: true、mapcore_group_enabled: true、その他テスト(admin/metadata/login/upload/MinIO/WEKO/Mibyo DB/JupyterHub/Flowable/Wiki)はすべてスキップ設定。グループ機能テストのみを実行する専用グループ。
  • MAPCORE_GROUP_ENABLED 環境変数を matrix.test-group.mapcore_group_enabled から解決して env: ブロックに追加。
  • テストデータ作成・マイグレーション前データ作成の両ステップにおける docker-compose exec コマンドへ -e MAPCORE_GROUP_ENABLED="${MAPCORE_GROUP_ENABLED}" を追加(setup_test_data.py に環境変数を渡すため)。
  • テストデータ作成・マイグレーション前データ作成の両ステップに set -o pipefail を追加(エラーを確実に検出するため)。
  • run_tests.py 呼び出し時に mapcore_group_enabled: ${{ matrix.test-group.mapcore_group_enabled == true }} を追加。
  • グループテスト専用パラメータを run_tests.py 呼び出しに追加(idp_username_3/4/5、idp_password_3/4/5、display_username_institutional_admin、display_username_1〜3、group_a/b/c/d、group_search、group_note_text)。

(2-c) 全テスト共通ヘルパー・CIエントリポイントの修正 — scripts/grdm.py と run_tests.py の修正

  • scripts/grdm.py(全ノートブック共通ヘルパー)

    • delete_project():is_component: bool = False 引数を追加。コンポーネントプロジェクトをグループテストで削除できるようにするため。既存呼び出しはデフォルト値 False により影響なし。
    • login():ログアウト後に再ログインする処理を統合し、after_logout: bool = False 引数を追加。グループテストのログアウト→再ログインフローを login() 内で一元管理するため。既存呼び出しはデフォルト値 False により動作変更なし。ただし login() は全テストノートブックから呼ばれる共通処理のため、引数追加・シグネチャ変更が他ノートブックに影響しないことをレビューで確認すること。
  • run_tests.py(全テストグループ共通のCIエントリポイント)

    • run_mapcore_group_tests() メソッドを新規追加。mapcore_group_enabled=true の場合のみ 取りまとめ-グループ.ipynb を実行し、必要なパラメータ(admin_rdm_url、idp_username_institutional_admin/1〜5、idp_password_institutional_admin/1〜5、display_username_institutional_admin、display_username_1〜3、group_a/b/c/d、group_search、group_note_text)を伝播する。既存のテスト実行メソッド(run_admin_tests() 等)には手を加えておらず、既存テストグループのCIフローへの影響はない。

Ticket

55277

Custom Test Configuration

  • RDM_REPOSITORY: RCOSDP/RDM-osf.io
  • RDM_BRANCH:
  • OSF_IMAGE:
  • EMBER_IMAGE:
  • CAS_IMAGE:
  • MFR_IMAGE:
  • WB_IMAGE:
  • EXCLUDE_NOTEBOOKS:

tma-hcphat and others added 6 commits June 16, 2026 11:12
…t overflow display limit, fix assertions

- Add admin_rdm_url/idp_username_admin/idp_password_admin params for
  Institution Admin login, used to auto-disable Groups addon after tests
- Document expected overflow behavior in markdown notes (max 3 members/
  groups shown, then "あとn人/他n名" and "あとnグループ/他nグループ")
  across 3 test notebooks, and update assertions to match
- Flaky-test hardening: add retries, scroll-into-view, longer sleeps
@lieunguyen-tma
lieunguyen-tma force-pushed the feature/nii_grdm_202510_step2/2.3_mapcore_group_management branch from aaa40f9 to bdde39c Compare August 13, 2026 03:22
@lieunguyen-tma
lieunguyen-tma force-pushed the feature/nii_grdm_202510_step2/2.3_mapcore_group_management branch from bdde39c to 0f1aa68 Compare August 13, 2026 03:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants