Bug(バグ) #3391
デフォルトの OpenPNE.yml によって sf_factory_storage が設定されるため、 test 環境用のセッションストレージである sfSessionTestStorage が利用されず、セッションが発行されなくなる
100%
説明
現象¶
セッションを database に保持する設定とした場合、デフォルトの OpenPNE.yml 設定によって sf_factory_storage として opPDODatabaseSessionStorage が設定される。これによって、 factories.yml の設定を変更することなく、このセッションストレージクラスが使用されることになる。
だが、これには、 test 環境でもこのストレージクラスが使用されてしまうという問題がある。 symfony デフォルトの factories.yml においては、 test 環境用の sfSessionTestStorage を使用するような配慮がなされているが、 OpenPNE.yml のデフォルト設定によって無力化してしまう。これによって、
- 機能テストの出力の存在をストレージクラスが考慮せず、セッションの開始が拒否される
- セッションの継続ができない
などといった問題が生じる。
原因¶
バグが発生した原因を記入
修正案¶
解決策としては「sf_factory_storage の設定内容に応じた test 環境用のラッパークラスを作成する」「test 環境では OpenPNE.yml のセッションストレージの上書きを無効にする」のどちらかを選択することになるが、実装の容易さ等を考慮し、後者を選択することが適当と思われる。
関連するチケット
関係しているリビジョン
(fixes #3391) In the test environment it was not allowed to override the session storage settings that are defined in the factories.yml
履歴
#1 Shinichi Urabe が10年以上前に更新
- 説明 を更新 (diff)
#2 Shinichi Urabe が9年以上前に更新
- 優先度 を Normal(通常) から High(高め) に変更
#3 Shinichi Urabe がほぼ9年前に更新
修正案を添付しました。以下のコマンドで取り込めます
$ git am -3 0001-test-factories.yml-refs-1074.patch
#4 Chiharu Nakajima がほぼ9年前に更新
- コピー先 Backport(バックポート) #3813: デフォルトの OpenPNE.yml によって sf_factory_storage が設定されるため、 test 環境用のセッションストレージである sfSessionTestStorage が利用されず、セッションが発行されなくなる を追加
#5 Chiharu Nakajima がほぼ9年前に更新
- コピー先 Backport(バックポート) #3814: デフォルトの OpenPNE.yml によって sf_factory_storage が設定されるため、 test 環境用のセッションストレージである sfSessionTestStorage が利用されず、セッションが発行されなくなる を追加
#6 Chiharu Nakajima が8年以上前に更新
- ステータス を New(新規) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
プルリクエストしました。
https://github.com/openpne/OpenPNE3/pull/257
#7 Shinichi Urabe が8年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
#8 Shinichi Urabe が8年以上前に更新
- 担当者 を Chiharu Nakajima にセット
#9 Kousuke Ebihara が8年以上前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
更新履歴 d48f33ce9076ec0a5804cf7be6ddcdf7d7b41f15 で適用されました。