§
    Éw»jx  ã                   ó    — d Z ddlZddlmc mZ ddlZddlZddl	Z	ddl
mZmZ  G d„ de	j        ¦  «        Zedk    r e	j        ¦   «          dS dS )z’
Unit tests for Isolated Feedback & Suggestions Service in FreeExile.
Verifies submission, data isolation, status updates, and metrics reporting.
é    N)ÚFeedbackServiceÚSystemDiagnosticsDTOc                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestFeedbackServicec                 óÈ   — t          j        ¦   «         | _        t          j                             | j        j        d¦  «        | _        t          | j        ¬¦  «        | _	        d S )Nztest_feedback.db)Údb_path)
ÚtempfileÚTemporaryDirectoryÚtemp_dirÚosÚpathÚjoinÚnamer   r   Úservice©Úselfs    ú9C:\Projects\FreeExile\tests\unit\test_feedback_service.pyÚsetUpzTestFeedbackService.setUp   sG   € å Ô3Ñ5Ô5ˆŒÝ”w—|’| D¤MÔ$6Ð8JÑKÔKˆŒÝ&¨t¬|Ð<Ñ<Ô<ˆŒˆˆó    c                 ó8   — | j                              ¦   «          d S )N)r   Úcleanupr   s    r   ÚtearDownzTestFeedbackService.tearDown   s   € ØŒ×ÒÑÔÐÐÐr   c                 ó\  — t          dddd¬¦  «        }| j                             dddd	d
|¬¦  «        \  }}}|                      |¦  «         |                      |                     d¦  «        ¦  «         |                      d|¦  «         | j                             |¦  «        }|                      |¦  «         |                      |j	        d¦  «         |                      |j
        d¦  «         |                      |j        d¦  «         |                      |j        d         d¦  «         d S )NÚiOSziPhone 16 Prog33333ó]@zCo Tran Huyet Lan)Úclient_platformÚdevice_modelÚcurrent_fpsÚcurrent_zone_namei'  ÚTieuDaoKiemÚGAMEPLAY_SUGGESTIONu5   Ä�á»� xuáº¥t thÃªm tÃ­nh nÄƒng káº¿t hÃ´n Ä‘áº¡o lá»¯uj   Mong ban quáº£n trá»‹ phÃ¡t triá»ƒn thÃªm há»‡ thá»‘ng song tu Ä‘áº¡o lá»¯ Ä‘á»ƒ cÃ¹ng vÆ°á»£t bÃ­ cáº£nh.)Ú	player_idÚplayer_nameÚcategoryÚtitleÚcontentÚdiagnosticsÚfb_u   Ä‘Ã£ ghi nháº­nÚNEWr   )r   r   Úsubmit_feedbackÚ
assertTrueÚ
startswithÚassertInÚget_feedback_by_idÚassertIsNotNoneÚassertEqualr!   r#   Ústatusr&   )r   ÚdiagÚsuccessÚfb_idÚmsgÚrecords         r   Útest_submit_valid_feedbackz.TestFeedbackService.test_submit_valid_feedback   s>  € Ý#Ø!Ø(ØØ1ð	
ñ 
ô 
ˆð #œl×:Ò:ØØ%Ø*ØIð AØð ;ñ 
ô 
Ñˆ�˜ð 	�Š˜Ñ Ô Ð Ø�Š˜×(Ò(¨Ñ/Ô/Ñ0Ô0Ð0Ø�ŠÐ'¨Ñ-Ô-Ð-ð ”×0Ò0°Ñ7Ô7ˆØ×Ò˜VÑ$Ô$Ð$Ø×Ò˜Ô)¨5Ñ1Ô1Ð1Ø×Ò˜œÐ*?Ñ@Ô@Ð@Ø×Ò˜œ¨Ñ.Ô.Ð.Ø×Ò˜Ô+¨NÔ;¸_ÑMÔMÐMÐMÐMr   c                 ó>  — | j                              ddddd¬¦  «        \  }}}|                      |¦  «         |                      d|¦  «         | j                              ddddd	¬¦  «        \  }}}|                      |¦  «         |                      d
|¦  «         d S )Ni'  ÚBachYÚ
BUG_REPORTÚ u;   Ná»™i dung bÃ¡o lá»—i há»£p lá»‡ dÃ i hÆ¡n mÆ°á»�i kÃ½ tá»±©r!   r"   r#   r$   r%   u   khÃ´ng Ä‘Æ°á»£c Ä‘á»ƒ trá»‘ngu   Lá»—i káº¹t gÃ³c tÆ°á»�ngu   Lag quÃ¡u   tá»‘i thiá»ƒu 10 kÃ½ tá»±)r   r)   ÚassertFalser,   )r   Úok1Ú_Úerr1Úok2Úerr2s         r   Útest_validation_errorsz*TestFeedbackService.test_validation_errors2   s½   € à”|×3Ò3Ø¨¸<ØÐ[ð 4ñ 
ô 
‰ˆˆQ�ð 	×Ò˜ÑÔÐØ�ŠÐ5°tÑ<Ô<Ð<ð ”|×3Ò3Ø¨¸<Ø-°zð 4ñ 
ô 
‰ˆˆQ�ð 	×Ò˜ÑÔÐØ�ŠÐ1°4Ñ8Ô8Ð8Ð8Ð8r   c                 ó  — | j                              ddddd¬¦  «        \  }}}| j                              |dd¦  «        }|                      |¦  «         | j                              |¦  «        }|                      |j        d¦  «         |                      |j        d¦  «         | j                              |d	d
¦  «        }|                      |¦  «         | j                              |¦  «        }|                      |j        d	¦  «         d S )Ni'  ÚHacPhongÚBALANCE_ADJUSTMENTu5   Giáº£m bá»›t sÃ¡t thÆ°Æ¡ng Liá»‡t Diá»…m Cuá»“ng Ä�aouL   Ká»¹ nÄƒng Há»�a há»‡ Ä‘ang quÃ¡ máº¡nh so vá»›i Kim há»‡ trong phá»¥ báº£n.r;   ÚUNDER_REVIEWu(   Ä�Ã£ chuyá»ƒn cho Lead Systems Designer.ÚPLANNEDuB   Ä�Ã£ Ä‘Æ°a vÃ o lá»™ trÃ¬nh cÃ¢n báº±ng báº£n cáº­p nháº­t MÃ¹a 1.)r   r)   Úupdate_feedback_statusr*   r-   r/   r0   Úadmin_response)r   r>   r3   Úres1Úrec1Úres2Úrec2s          r   Ú%test_status_update_and_admin_workflowz9TestFeedbackService.test_status_update_and_admin_workflowC   s  € Ø”l×2Ò2Ø¨Ð>RØIØbð 3ñ 
ô 
‰ˆˆ5�!ð Œ|×2Ò2°5¸.ÐJtÑuÔuˆØ�Š˜ÑÔÐØŒ|×.Ò.¨uÑ5Ô5ˆØ×Ò˜œ nÑ5Ô5Ð5Ø×Ò˜Ô,Ð.XÑYÔYÐYð Œ|×2Ò2°5¸)ð  FJñ  Kô  KˆØ�Š˜ÑÔÐØŒ|×.Ò.¨uÑ5Ô5ˆØ×Ò˜œ iÑ0Ô0Ð0Ð0Ð0r   c                 ól  — | j                              ddddd¦  «         | j                              dddd	d
¦  «         | j                              ddddd¦  «         | j                              d¬¦  «        }|                      t	          |¦  «        d¦  «         | j                              ¦   «         }|                      |d         d¦  «         |                      |d         d         d¦  «         |                      |d         d         d¦  «         |                      |d         d         d¦  «         d S )Né   ÚP1r9   zBug 1zNoi dung bao loi chi tiet so 1é   ÚP2r    z	Suggest 1zNoi dung de xuat gameplay so 2é   ÚP3zBug 2zNoi dung bao loi chi tiet so 3)r#   ÚtotalÚby_categoryÚ	by_statusr(   )r   r)   Úlist_feedbacksr/   ÚlenÚget_feedback_metrics)r   ÚbugsÚmetricss      r   Útest_listing_and_metricsz,TestFeedbackService.test_listing_and_metricsW   s-  € àŒ×$Ò$ Q¨¨l¸GÐEeÑfÔfÐfØŒ×$Ò$ Q¨Ð.CÀ[ÐRrÑsÔsÐsØŒ×$Ò$ Q¨¨l¸GÐEeÑfÔfÐfð Œ|×*Ò*°LÐ*ÑAÔAˆØ×Ò�˜T™œ AÑ&Ô&Ð&ð ”,×3Ò3Ñ5Ô5ˆØ×Ò˜ Ô)¨1Ñ-Ô-Ð-Ø×Ò˜ Ô/°Ô=¸qÑAÔAÐAØ×Ò˜ Ô/Ð0EÔFÈÑJÔJÐJØ×Ò˜ Ô-¨eÔ4°aÑ8Ô8Ð8Ð8Ð8r   N)	Ú__name__Ú
__module__Ú__qualname__r   r   r6   rB   rN   r^   © r   r   r   r      sq   € € € € € ð=ð =ð =ð ð  ð  ðNð Nð Nð69ð 9ð 9ð"1ð 1ð 1ð(9ð 9ð 9ð 9ð 9r   r   Ú__main__)Ú__doc__ÚbuiltinsÚ@py_builtinsÚ_pytest.assertion.rewriteÚ	assertionÚrewriteÚ
@pytest_arr   r	   ÚunittestÚ server.feedback.feedback_servicer   r   ÚTestCaser   r_   Úmainrb   r   r   ú<module>ro      sº   ððð ð
 € € € € € € € € € € € € €	€	€	€	Ø €€€Ø €€€à RÐ RÐ RÐ RÐ RÐ RÐ RÐ RðY9ð Y9ð Y9ð Y9ð Y9˜(Ô+ñ Y9ô Y9ð Y9ðx ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   