ara-cli 0.1.13.3__py3-none-any.whl → 0.1.14.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ara_cli/__init__.py +1 -1
- ara_cli/ara_command_action.py +162 -112
- ara_cli/ara_config.py +1 -1
- ara_cli/ara_subcommands/convert.py +66 -2
- ara_cli/ara_subcommands/prompt.py +266 -106
- ara_cli/artefact_autofix.py +2 -2
- ara_cli/artefact_converter.py +152 -53
- ara_cli/artefact_creator.py +41 -17
- ara_cli/artefact_lister.py +3 -3
- ara_cli/artefact_models/artefact_model.py +1 -1
- ara_cli/artefact_models/artefact_templates.py +0 -9
- ara_cli/artefact_models/feature_artefact_model.py +8 -8
- ara_cli/artefact_reader.py +62 -43
- ara_cli/artefact_scan.py +39 -17
- ara_cli/chat.py +23 -15
- ara_cli/children_contribution_updater.py +737 -0
- ara_cli/classifier.py +34 -0
- ara_cli/commands/load_command.py +4 -3
- ara_cli/commands/load_image_command.py +1 -1
- ara_cli/commands/read_command.py +23 -27
- ara_cli/completers.py +24 -0
- ara_cli/error_handler.py +26 -11
- ara_cli/file_loaders/document_reader.py +0 -178
- ara_cli/file_loaders/factories/__init__.py +0 -0
- ara_cli/file_loaders/factories/document_reader_factory.py +32 -0
- ara_cli/file_loaders/factories/file_loader_factory.py +27 -0
- ara_cli/file_loaders/file_loader.py +1 -30
- ara_cli/file_loaders/loaders/__init__.py +0 -0
- ara_cli/file_loaders/{document_file_loader.py → loaders/document_file_loader.py} +1 -1
- ara_cli/file_loaders/loaders/text_file_loader.py +47 -0
- ara_cli/file_loaders/readers/__init__.py +0 -0
- ara_cli/file_loaders/readers/docx_reader.py +49 -0
- ara_cli/file_loaders/readers/excel_reader.py +27 -0
- ara_cli/file_loaders/{markdown_reader.py → readers/markdown_reader.py} +1 -1
- ara_cli/file_loaders/readers/odt_reader.py +59 -0
- ara_cli/file_loaders/readers/pdf_reader.py +54 -0
- ara_cli/file_loaders/readers/pptx_reader.py +104 -0
- ara_cli/file_loaders/tools/__init__.py +0 -0
- ara_cli/output_suppressor.py +53 -0
- ara_cli/prompt_handler.py +123 -17
- ara_cli/tag_extractor.py +8 -7
- ara_cli/version.py +1 -1
- {ara_cli-0.1.13.3.dist-info → ara_cli-0.1.14.0.dist-info}/METADATA +18 -12
- {ara_cli-0.1.13.3.dist-info → ara_cli-0.1.14.0.dist-info}/RECORD +58 -45
- {ara_cli-0.1.13.3.dist-info → ara_cli-0.1.14.0.dist-info}/WHEEL +1 -1
- tests/test_artefact_converter.py +1 -46
- tests/test_artefact_lister.py +11 -8
- tests/test_chat.py +4 -4
- tests/test_chat_givens_images.py +1 -1
- tests/test_children_contribution_updater.py +98 -0
- tests/test_document_loader_office.py +267 -0
- tests/test_prompt_handler.py +416 -214
- tests/test_setup_default_chat_prompt_mode.py +198 -0
- tests/test_tag_extractor.py +95 -49
- ara_cli/file_loaders/document_readers.py +0 -233
- ara_cli/file_loaders/file_loaders.py +0 -123
- ara_cli/file_loaders/text_file_loader.py +0 -187
- /ara_cli/file_loaders/{binary_file_loader.py → loaders/binary_file_loader.py} +0 -0
- /ara_cli/file_loaders/{image_processor.py → tools/image_processor.py} +0 -0
- {ara_cli-0.1.13.3.dist-info → ara_cli-0.1.14.0.dist-info}/entry_points.txt +0 -0
- {ara_cli-0.1.13.3.dist-info → ara_cli-0.1.14.0.dist-info}/top_level.txt +0 -0
|
@@ -1,50 +1,51 @@
|
|
|
1
|
-
ara_cli/__init__.py,sha256=
|
|
1
|
+
ara_cli/__init__.py,sha256=LYYN2pTRHxxj-oLD0k31Bt_H3czlYYfBLTSEZLtF0ZQ,1602
|
|
2
2
|
ara_cli/__main__.py,sha256=U_A7kk-3cngFfmDqPoC3IoDwPiY1TlfjbYdJ6Y9lsew,12733
|
|
3
|
-
ara_cli/ara_command_action.py,sha256=
|
|
4
|
-
ara_cli/ara_config.py,sha256=
|
|
5
|
-
ara_cli/artefact_autofix.py,sha256=
|
|
6
|
-
ara_cli/artefact_converter.py,sha256=
|
|
7
|
-
ara_cli/artefact_creator.py,sha256=
|
|
3
|
+
ara_cli/ara_command_action.py,sha256=YY6acWkHqKHXKIIDXDqvWZjTtlYG1GsAa3jYK33UihA,25818
|
|
4
|
+
ara_cli/ara_config.py,sha256=jAQrZPL0vcjd5j5o5NIKwQSPgEfi5OIB5scy2Lk8ns4,11583
|
|
5
|
+
ara_cli/artefact_autofix.py,sha256=MihKihJMJ_q4WrB8sR84cVFdwFDWA4ePNADUsZq8D9Q,26556
|
|
6
|
+
ara_cli/artefact_converter.py,sha256=ufHwsggWvHIacfmGIgKeRXrynqgXtjYzUtYw94bJPZ0,13758
|
|
7
|
+
ara_cli/artefact_creator.py,sha256=Whs_dwxIBcdlEkM9MguIgbwJSm7L0qLswJMUbFgc7r4,6289
|
|
8
8
|
ara_cli/artefact_deleter.py,sha256=T1vS2s3k_BW86Sd8FExx8nC3BIL05xE9KZLkeZsZrKM,1891
|
|
9
9
|
ara_cli/artefact_fuzzy_search.py,sha256=XMzbMBOJ2YrgFi566jYNB3XeRAmJh7-zqV2QJYbhtlc,3006
|
|
10
10
|
ara_cli/artefact_link_updater.py,sha256=nKdxTpDKqWTOAMD8viKmUaklSFGWzJZ8S8E8xW_ADuM,3775
|
|
11
|
-
ara_cli/artefact_lister.py,sha256=
|
|
12
|
-
ara_cli/artefact_reader.py,sha256
|
|
11
|
+
ara_cli/artefact_lister.py,sha256=rCpPuYzYCNmovslN8Dbrys1jIyvoNgdnjBuv9KBx3u0,4230
|
|
12
|
+
ara_cli/artefact_reader.py,sha256=kDXqBtnmmdxNgWjrAFOmKMfbr8Jqp3FAuBH8XrZOmyg,7899
|
|
13
13
|
ara_cli/artefact_renamer.py,sha256=8S4QWD19_FGKsKlWojnu_RUOxx0u9rmLugydM4s4VDc,4219
|
|
14
|
-
ara_cli/artefact_scan.py,sha256=
|
|
15
|
-
ara_cli/chat.py,sha256=
|
|
16
|
-
ara_cli/
|
|
14
|
+
ara_cli/artefact_scan.py,sha256=PsOnpSO4Xw1zwrmtYuYh3uBeLgWf4rja-jtLVQ0wfWU,4974
|
|
15
|
+
ara_cli/chat.py,sha256=8VXxdHaxZYhr89RYEU63kYVgSY3Awib8zlEGe7XxJxQ,48912
|
|
16
|
+
ara_cli/children_contribution_updater.py,sha256=4guLtOhC3r66DIpxhn9nLvvhqqzqExu7vg_K9_zIEgU,27248
|
|
17
|
+
ara_cli/classifier.py,sha256=aPRGMrtsHQz05cJyjQdaI4PWsSZ3DlA1ySNTlY_pL_Y,3474
|
|
17
18
|
ara_cli/codefusionretriever.py,sha256=fCHgXdIBRzkVAnapX-KI2NQ44XbrrF4tEQmn5J6clUI,1980
|
|
18
19
|
ara_cli/codehierachieretriever.py,sha256=Xd3EgEWWhkSf1TmTWtf8X5_YvyE_4B66nRrqarwSiTU,1182
|
|
19
20
|
ara_cli/commandline_completer.py,sha256=b00Dqb5n7SecpxYIDLxAfYhp8X6e3c8a5qYz6ko0i3E,1192
|
|
20
|
-
ara_cli/completers.py,sha256=
|
|
21
|
+
ara_cli/completers.py,sha256=vcPb0ZRJH8azqncOd87xIbfesgDM7FHDfoPQV8M5W5s,7003
|
|
21
22
|
ara_cli/constants.py,sha256=ubQYegN70gjnkix5JIyODlC1O9yHMbp_jg4ybVnsJ2U,74
|
|
22
23
|
ara_cli/directory_navigator.py,sha256=mr34qhuz8MT2Qj_sTddffCB2nzYpWCg9AWLPdaFjeOM,4518
|
|
23
|
-
ara_cli/error_handler.py,sha256=
|
|
24
|
+
ara_cli/error_handler.py,sha256=JNglPlEtpyFUoFSpYhnFlVPvAv660FYXy7rD4aiM4Co,4337
|
|
24
25
|
ara_cli/file_classifier.py,sha256=nUcNrhflUydCyCRbXHjEEXYwwwfUm65lYnNEvc86fpM,4026
|
|
25
26
|
ara_cli/file_lister.py,sha256=0C-j8IzajXo5qlvnuy5WFfe43ALwJ-0JFh2K6Xx2ccw,2332
|
|
26
27
|
ara_cli/filename_validator.py,sha256=Aw9PL8d5-Ymhp3EY6lDrUBk3cudaNqo1Uw5RzPpI1jA,118
|
|
27
28
|
ara_cli/global_file_lister.py,sha256=y2UCDoNXODnTAjmlzlV5cf7QxiZ55KEBbbOGQ_JpiHw,2303
|
|
28
29
|
ara_cli/list_filter.py,sha256=qKGwwQsrWe7L5FbdxEbBYD1bbbi8c-RMypjXqXvLbgs,5291
|
|
29
30
|
ara_cli/llm_utils.py,sha256=kTQnBv5V8kagHH-0it3juBtjha6coO2VTG1SAZTtT28,1979
|
|
30
|
-
ara_cli/output_suppressor.py,sha256=
|
|
31
|
+
ara_cli/output_suppressor.py,sha256=MWdr9_bel91EyZ2JP2cQQAnoPekwwzoYSRmg_GLQofc,1851
|
|
31
32
|
ara_cli/prompt_chat.py,sha256=FeULZtiOJUGKv-jawA29EclsNzmWF8UMnRfT0iRD6KI,1444
|
|
32
33
|
ara_cli/prompt_extractor.py,sha256=zpEvOcWjEVOlgvfkt7HTaXAPLwyEPuRcr0YDHdCA3vA,12594
|
|
33
|
-
ara_cli/prompt_handler.py,sha256=
|
|
34
|
+
ara_cli/prompt_handler.py,sha256=_TGDt2-WrQ-WR1gloEkqbE0sKCAKvaFbIubgjuc30E4,33757
|
|
34
35
|
ara_cli/prompt_rag.py,sha256=ydlhe4CUqz0jdzlY7jBbpKaf_5fjMrAZKnriKea3ZAg,7485
|
|
35
36
|
ara_cli/run_file_lister.py,sha256=XbrrDTJXp1LFGx9Lv91SNsEHZPP-PyEMBF_P4btjbDA,2360
|
|
36
|
-
ara_cli/tag_extractor.py,sha256=
|
|
37
|
+
ara_cli/tag_extractor.py,sha256=GGklmzYwjyaK_ktSxoVX_u5-ICIC3GPoI1LrLlWnSYE,4037
|
|
37
38
|
ara_cli/template_loader.py,sha256=WzaB5XaKLJiegxEYZ960rljuhTJ-0zW4JHldiCdJ2Xc,10777
|
|
38
39
|
ara_cli/template_manager.py,sha256=C04HJI5cVX49Lysw6D2qXqhfRoK6CQ4jx6PJx414S8s,7477
|
|
39
40
|
ara_cli/update_config_prompt.py,sha256=moqj2Kha7S7fEGzTReU0v2y8UjXC8QfnoiieOQr35C4,5157
|
|
40
|
-
ara_cli/version.py,sha256=
|
|
41
|
+
ara_cli/version.py,sha256=n-E9G9HSaPRTvuNA-SwdM3J6eba1V6YjmaiKblDE7Y8,146
|
|
41
42
|
ara_cli/ara_subcommands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
43
|
ara_cli/ara_subcommands/autofix.py,sha256=h7-6hV97Q6PisUJ_U1Qs4sHYwkHsDpeYH63y_LQsfSc,1095
|
|
43
44
|
ara_cli/ara_subcommands/chat.py,sha256=9zorWKbM0ulu9xFhW2tzV5vl8hCLOCjcp2E9hYgZJ90,1239
|
|
44
45
|
ara_cli/ara_subcommands/classifier_directory.py,sha256=7GH3w4DtvFCM1Sr6Qqk_kjp0EC8jNJDieJJMshYJ_6k,620
|
|
45
46
|
ara_cli/ara_subcommands/common.py,sha256=CnXZJKdaJguxWHSoY-8v6T03qybm1AFWlLwoeKhl1S0,2845
|
|
46
47
|
ara_cli/ara_subcommands/config.py,sha256=LIzD-rvct-KjTplgVYUtMq4jc2c9DM-i3diqSW_PDTI,7422
|
|
47
|
-
ara_cli/ara_subcommands/convert.py,sha256=
|
|
48
|
+
ara_cli/ara_subcommands/convert.py,sha256=K3bxmNxHI8SiBRqLibbnA_D2pVrBXn_vZUye8xL24_k,3841
|
|
48
49
|
ara_cli/ara_subcommands/create.py,sha256=2tIpzKgzytTIdVV26p6cvrcBo8WLm_3qK7GJyn47Jaw,2527
|
|
49
50
|
ara_cli/ara_subcommands/delete.py,sha256=DxWRQ5Z8h5ZpMhyjLHNuLxONgxIQ97hVkQ8VkX15FDk,827
|
|
50
51
|
ara_cli/ara_subcommands/extract.py,sha256=11atXek579W2RP6PYHlGuyVjWBTuyh1viondCjuce_k,765
|
|
@@ -55,7 +56,7 @@ ara_cli/ara_subcommands/fetch_templates.py,sha256=V3A3qsoy_DKSkYhTbmswJfCcTOaKzt
|
|
|
55
56
|
ara_cli/ara_subcommands/list.py,sha256=46qLOqLuLU3gFlSBiGKmMDKIqCVP_tGea8FkYIhOLgg,4878
|
|
56
57
|
ara_cli/ara_subcommands/list_tags.py,sha256=drEzJgJa4OqqYfIuvT7XkjG4o7VB-ikHE0ArIdljoTI,1113
|
|
57
58
|
ara_cli/ara_subcommands/load.py,sha256=czaflU5Xv-TBlpgalvm6yn5oBBAnNfxSeoIFuLPfi-U,1825
|
|
58
|
-
ara_cli/ara_subcommands/prompt.py,sha256=
|
|
59
|
+
ara_cli/ara_subcommands/prompt.py,sha256=q5DYlZTdgBl6N1PBF-EtyFwwFFxNWOWMNs-Xvv_Vu8w,9235
|
|
59
60
|
ara_cli/ara_subcommands/read.py,sha256=zTPNMvEPf1WvhtUiauXu5HFiXHRIBJVCkHu44L_scSk,2396
|
|
60
61
|
ara_cli/ara_subcommands/read_status.py,sha256=ZqdxuYXC-idJ2JtMIcZzT4XYI55PnqA6sYv2FcMuchw,695
|
|
61
62
|
ara_cli/ara_subcommands/read_user.py,sha256=NuhaC7dBbi8PUHnGGpqbBVSbQ__nT_L52c7tdKkxjlA,681
|
|
@@ -69,13 +70,13 @@ ara_cli/artefact_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
|
69
70
|
ara_cli/artefact_models/artefact_data_retrieval.py,sha256=CooXOJBYWSyiViN2xkC8baS8OUaslry3YGVVUeDxRAU,527
|
|
70
71
|
ara_cli/artefact_models/artefact_load.py,sha256=IXzWxP-Q_j_oDGMno0m-OuXCQ7Vd5c_NctshGr4ROBw,621
|
|
71
72
|
ara_cli/artefact_models/artefact_mapping.py,sha256=8aD0spBjkJ8toMAmFawc6UTUxB6-tEEViZXv2I-r88Q,1874
|
|
72
|
-
ara_cli/artefact_models/artefact_model.py,sha256=
|
|
73
|
-
ara_cli/artefact_models/artefact_templates.py,sha256=
|
|
73
|
+
ara_cli/artefact_models/artefact_model.py,sha256=yOqktMaqOvPPiSG8i5dBa2v6SI359vGki5LEjpDwkPY,18804
|
|
74
|
+
ara_cli/artefact_models/artefact_templates.py,sha256=XDhRvxJDL7dpEBfCGm_RPtM6LzaeOU7Q0P5LLOSuup4,9736
|
|
74
75
|
ara_cli/artefact_models/businessgoal_artefact_model.py,sha256=GYT5S2xEnQHwv-k-lEeX5NMSqA-UEfV3PhNjgPDUJpw,4698
|
|
75
76
|
ara_cli/artefact_models/capability_artefact_model.py,sha256=SZqHx4O2mj4urn77Stnj4_Jxtlq3-LgBBU9SMkByppI,3079
|
|
76
77
|
ara_cli/artefact_models/epic_artefact_model.py,sha256=_HlFmOJqkDKj3SRpLI4H5rU-va-nFamxhMH4BCODR5c,6053
|
|
77
78
|
ara_cli/artefact_models/example_artefact_model.py,sha256=UXrKbaPotg1jwcrVSdCeo-XH4tTD_-U1e3giaBn5_xg,1384
|
|
78
|
-
ara_cli/artefact_models/feature_artefact_model.py,sha256=
|
|
79
|
+
ara_cli/artefact_models/feature_artefact_model.py,sha256=UG3qkBFiEkZplg6XpwQ0mzrJdjMzwsGkEC5r3P2kFjk,21304
|
|
79
80
|
ara_cli/artefact_models/issue_artefact_model.py,sha256=v6CpKnkqiUh6Wch2kkEmyyW49c8ysdy1qz8l1Ft9uJA,2552
|
|
80
81
|
ara_cli/artefact_models/keyfeature_artefact_model.py,sha256=J9oXLsCAo22AW31D5Z104y02ss0S0O4tPCcd09zYCD0,4066
|
|
81
82
|
ara_cli/artefact_models/serialize_helper.py,sha256=Wks30wy-UrwJURetydKykLgJkdGRgXFHkDT24vHe5tU,595
|
|
@@ -100,19 +101,28 @@ ara_cli/commands/fetch_scripts_command.py,sha256=B3JPVg0mIfeiZ7UPJYc27cfYS-WKZuJ
|
|
|
100
101
|
ara_cli/commands/fetch_templates_command.py,sha256=Q64Ax_Sm99i569evbZ-_Trdx-R5F6Cj66ukaUrl3xkM,1605
|
|
101
102
|
ara_cli/commands/fetch_templates_commands.py,sha256=Q64Ax_Sm99i569evbZ-_Trdx-R5F6Cj66ukaUrl3xkM,1605
|
|
102
103
|
ara_cli/commands/list_agents_command.py,sha256=YYQdANNS7Plek8xcBRKu85Z4DG6CjpujRko43uWhXuM,1352
|
|
103
|
-
ara_cli/commands/load_command.py,sha256=
|
|
104
|
-
ara_cli/commands/load_image_command.py,sha256=
|
|
105
|
-
ara_cli/commands/read_command.py,sha256=
|
|
104
|
+
ara_cli/commands/load_command.py,sha256=k1Nh-xZW00HyFtlLB05BE7QjMh3-TVd3qenjBtTf2iA,2252
|
|
105
|
+
ara_cli/commands/load_image_command.py,sha256=qe1k9_pDjHakKJZ05thTnD9QnHw5e4gIng-xLZ4db4M,894
|
|
106
|
+
ara_cli/commands/read_command.py,sha256=SVNYS6fh4thFObJGCs4QitRX1oc4X26gGgl15osX2UI,4293
|
|
106
107
|
ara_cli/file_loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
107
|
-
ara_cli/file_loaders/
|
|
108
|
-
ara_cli/file_loaders/
|
|
109
|
-
ara_cli/file_loaders/
|
|
110
|
-
ara_cli/file_loaders/
|
|
111
|
-
ara_cli/file_loaders/
|
|
112
|
-
ara_cli/file_loaders/
|
|
113
|
-
ara_cli/file_loaders/
|
|
114
|
-
ara_cli/file_loaders/
|
|
115
|
-
ara_cli/file_loaders/text_file_loader.py,sha256=
|
|
108
|
+
ara_cli/file_loaders/document_reader.py,sha256=QF1eC57kk09wmzofs8lbZHDhNKP7EMpn5iw8xYAkE3g,1906
|
|
109
|
+
ara_cli/file_loaders/file_loader.py,sha256=zxBUJazAKkQuIS4xweusw2Y11d_L14csp4mIC9M7BZ8,506
|
|
110
|
+
ara_cli/file_loaders/factories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
111
|
+
ara_cli/file_loaders/factories/document_reader_factory.py,sha256=K2yaCJkNR-XtVf8Z_mGej1l9NNjGAzsk0ae7qXhvo00,1118
|
|
112
|
+
ara_cli/file_loaders/factories/file_loader_factory.py,sha256=2V8nX_i2tpIO3TISutncafySGPOmM11h2kQTAi9zjRY,1182
|
|
113
|
+
ara_cli/file_loaders/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
114
|
+
ara_cli/file_loaders/loaders/binary_file_loader.py,sha256=1HHH1Nk4lEM83CTnf4z9wYz6rMLgpxydFoRcSgkBHmQ,940
|
|
115
|
+
ara_cli/file_loaders/loaders/document_file_loader.py,sha256=1pmmjeULAIfDrNT0xoI9-mx3w2q7_Wz0KS1FjxNgVDI,1035
|
|
116
|
+
ara_cli/file_loaders/loaders/text_file_loader.py,sha256=jZuKeuylV1zWnvpicKy-nlRKXziLzP9OXWYDZ04W88Q,1486
|
|
117
|
+
ara_cli/file_loaders/readers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
118
|
+
ara_cli/file_loaders/readers/docx_reader.py,sha256=SYIdVJ3VY9HIT2vOa-7-Vtx1y0wFPKGOIeNH2OdKR0s,1633
|
|
119
|
+
ara_cli/file_loaders/readers/excel_reader.py,sha256=hihT57aQyh1uKKBFXA5nJv-S6Q5G9eF_zHcecRLRdNg,1040
|
|
120
|
+
ara_cli/file_loaders/readers/markdown_reader.py,sha256=WYWnqpS8dLvFML-ElcUHCNz7mbzlO7OJAJ7_cbaDGsU,2548
|
|
121
|
+
ara_cli/file_loaders/readers/odt_reader.py,sha256=oEY6Kxyudozv1J5HqaBljHWSGQ8yhmiA9f9xvAeoaYw,2152
|
|
122
|
+
ara_cli/file_loaders/readers/pdf_reader.py,sha256=ros0n0OGzOsL7d4jkXut6-UWiSz0NfPMzaXEuWtJOhw,1820
|
|
123
|
+
ara_cli/file_loaders/readers/pptx_reader.py,sha256=dlgtbIw72LAjmQ32MP3O68m1uxvnqbpR3o2_gMaLoqc,3717
|
|
124
|
+
ara_cli/file_loaders/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
125
|
+
ara_cli/file_loaders/tools/image_processor.py,sha256=laPThh-i0-obYyS_linQTMcTUwuxMxrSjedGRYb8cIA,3462
|
|
116
126
|
ara_cli/templates/agile.artefacts,sha256=nTA8dp98HWKAD-0qhmNpVYIfkVGoJshZqMJGnphiOsE,7932
|
|
117
127
|
ara_cli/templates/template.businessgoal.prompt_log.md,sha256=xF6bkgj_GqAAqHxJWJiQNt11mEuSGemIqoZ2wOo6dI0,214
|
|
118
128
|
ara_cli/templates/template.capability.prompt_log.md,sha256=eO8EzrHgb2vYJ-DP1jGzAfDlMo8nY75hZDfhh0s40uQ,208
|
|
@@ -206,19 +216,21 @@ tests/test_ara_command_action.py,sha256=Hm2_rXyBj2O-ifZfBhMOjCdnoQUNkuj17qwM-pX6
|
|
|
206
216
|
tests/test_ara_config.py,sha256=uY0J9D5T1SfZB8LpMoa5CP5YoET3OAjadlS4Zh0aSJI,17300
|
|
207
217
|
tests/test_artefact_autofix.py,sha256=4Y-FqmzY4905bgBhaUSZfPIxgvGxZg1JdEUPNcroS3A,38485
|
|
208
218
|
tests/test_artefact_autofix_integration.py,sha256=0MUmeKYou6SnqK0tqNFspQkcvO9RQwo6WOrcpRP5JfY,18591
|
|
209
|
-
tests/test_artefact_converter.py,sha256=
|
|
219
|
+
tests/test_artefact_converter.py,sha256=3CCTMJpkbOXzcHpE27vmOkdFgotWtKoRaQPfRpgDmVg,11237
|
|
210
220
|
tests/test_artefact_extraction.py,sha256=amgAVxZbNiHNZQFV3xGCBMZOcvp8Yfb7RrppL9VTM0k,21727
|
|
211
221
|
tests/test_artefact_fuzzy_search.py,sha256=5Sh3_l9QK8-WHn6JpGPU1b6h4QEnl2JoMq1Tdp2cj1U,1261
|
|
212
222
|
tests/test_artefact_link_updater.py,sha256=biqbEp2jCOz8giv72hu2P2hDfeJfJ9OrVGdAv5d9cK4,2191
|
|
213
|
-
tests/test_artefact_lister.py,sha256=
|
|
223
|
+
tests/test_artefact_lister.py,sha256=Ozk2GuRNsYwSYhJUs4LhhnUhnaaOcFdvGJgD8FrWMts,20604
|
|
214
224
|
tests/test_artefact_reader.py,sha256=660K-d8ed-j8hulsUB_7baPD2-hhbg9TffUR5yVc4Uo,927
|
|
215
225
|
tests/test_artefact_renamer.py,sha256=lSnKCCfoFGgKhTdDZrEaeBq1xJAak1QoqH5aSeOe9Ro,3494
|
|
216
226
|
tests/test_artefact_scan.py,sha256=SzMtJeh8_oOBec9yzy3vJRHxs9i1E5gEU2RfF6CJZqE,16888
|
|
217
|
-
tests/test_chat.py,sha256=
|
|
218
|
-
tests/test_chat_givens_images.py,sha256=
|
|
227
|
+
tests/test_chat.py,sha256=5JTl65MbEU4fKxNgcfgM6WC9MmVbXcqJrWutI6GnP2w,88726
|
|
228
|
+
tests/test_chat_givens_images.py,sha256=aFQr0irv9neF7baxuYMRpQJaZiZMx1gwqYBEwND2Og8,21264
|
|
219
229
|
tests/test_chat_script_runner.py,sha256=fHwkGbUi8OpZeMqr1iO7LRWAIFyilMNL3YDaNahZzUo,17621
|
|
230
|
+
tests/test_children_contribution_updater.py,sha256=bc_V2Pn8ZmGPM_NIV2TIftKXoLeOafHk8GrBcxmVwtQ,3651
|
|
220
231
|
tests/test_classifier.py,sha256=grYGPksydNdPsaEBQxYHZTuTdcJWz7VQtikCKA6BNaQ,1920
|
|
221
232
|
tests/test_directory_navigator.py,sha256=7G0MVrBbtBvbrFUpL0zb_9EkEWi1dulWuHsrQxMJxDY,140
|
|
233
|
+
tests/test_document_loader_office.py,sha256=7KqqqparT4q_YqYbaPfOkatPziuB6FAF_GksLKVd2Io,9893
|
|
222
234
|
tests/test_file_classifier.py,sha256=4O1C_iDpGGm35b7aI-HIJd5kkWxFUOrI2n4lEpiDNTM,11855
|
|
223
235
|
tests/test_file_creator.py,sha256=tgBCq6KPv-qMSDhj9AZvQIJABiAqgpFRnEg1fqbVrTI,2013
|
|
224
236
|
tests/test_file_lister.py,sha256=Q9HwhKKx540EPzTmfzOCnvtAgON0aMmpJE2eOe1J3EA,4324
|
|
@@ -227,14 +239,15 @@ tests/test_list_filter.py,sha256=fJA3d_SdaOAUkE7jn68MOVS0THXGghy1fye_64Zvo1U,796
|
|
|
227
239
|
tests/test_llm_utils.py,sha256=TnQibpUVW5_Q5B_XZpdRR5nHvm3mobDbewbTOFO05EI,6053
|
|
228
240
|
tests/test_prompt_chat.py,sha256=DeYvu6aHQ62q_Vpfg_r363STMfijV-fmHcUuVVpTzF8,12110
|
|
229
241
|
tests/test_prompt_extractor.py,sha256=ZEgJOSDytIPYf3wd40gvS5By1rcAfgne4SvnQ_DP1dM,23679
|
|
230
|
-
tests/test_prompt_handler.py,sha256=
|
|
231
|
-
tests/
|
|
242
|
+
tests/test_prompt_handler.py,sha256=fTyEHzcQC6qKdM4alnFE_man2fnG_eFNUgFVXkSKs7M,36453
|
|
243
|
+
tests/test_setup_default_chat_prompt_mode.py,sha256=A5O6FoGIcJcXF9zE9bzIxVWDAnKrZyKcjJE0z82aOcM,7366
|
|
244
|
+
tests/test_tag_extractor.py,sha256=FPdaH8TvbemPfBVgqylpJ8iF7B2VBEqLBbrSnzXxq10,3861
|
|
232
245
|
tests/test_template_loader.py,sha256=R7s8HJZbKqja-1TRBMBkVKPTgajofUjjRKUJq7a3_Oc,7427
|
|
233
246
|
tests/test_template_manager.py,sha256=qliEeYgAEakn8JIqIHa8u0Ht6DY4L3T6DcHBXkjzR4I,4167
|
|
234
247
|
tests/test_update_config_prompt.py,sha256=xsqj1WTn4BsG5Q2t-sNPfu7EoMURFcS-hfb5VSXUnJc,6765
|
|
235
248
|
tests/test_web_search.py,sha256=BqbIJ8zbiXaYwntceovOVD_1pT3PboraX7lpPatcXJ4,16484
|
|
236
|
-
ara_cli-0.1.
|
|
237
|
-
ara_cli-0.1.
|
|
238
|
-
ara_cli-0.1.
|
|
239
|
-
ara_cli-0.1.
|
|
240
|
-
ara_cli-0.1.
|
|
249
|
+
ara_cli-0.1.14.0.dist-info/METADATA,sha256=DPXgbL2vhCUteS6ATO1x_3fYSmd_RgHVkiOOnSTJ9ro,8330
|
|
250
|
+
ara_cli-0.1.14.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
251
|
+
ara_cli-0.1.14.0.dist-info/entry_points.txt,sha256=v4h7MzysTgSIDYfEo3oj4Kz_8lzsRa3hq-KJHEcLVX8,45
|
|
252
|
+
ara_cli-0.1.14.0.dist-info/top_level.txt,sha256=WM4cLHT5DYUaWzLtRj-gu3yVNFpGQ6lLRI3FMmC-38I,14
|
|
253
|
+
ara_cli-0.1.14.0.dist-info/RECORD,,
|
tests/test_artefact_converter.py
CHANGED
|
@@ -12,11 +12,6 @@ from ara_cli.artefact_converter import AraArtefactConverter
|
|
|
12
12
|
from ara_cli.error_handler import AraError
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
# =============================================================================
|
|
16
|
-
# Test fixtures
|
|
17
|
-
# =============================================================================
|
|
18
|
-
|
|
19
|
-
|
|
20
15
|
@pytest.fixture
|
|
21
16
|
def mock_file_system():
|
|
22
17
|
"""Mock file system for testing."""
|
|
@@ -38,11 +33,6 @@ def converter(mock_file_system):
|
|
|
38
33
|
return converter
|
|
39
34
|
|
|
40
35
|
|
|
41
|
-
# =============================================================================
|
|
42
|
-
# Tests for __init__
|
|
43
|
-
# =============================================================================
|
|
44
|
-
|
|
45
|
-
|
|
46
36
|
class TestAraArtefactConverterInit:
|
|
47
37
|
"""Tests for AraArtefactConverter initialization."""
|
|
48
38
|
|
|
@@ -63,11 +53,6 @@ class TestAraArtefactConverterInit:
|
|
|
63
53
|
assert converter.file_system == os
|
|
64
54
|
|
|
65
55
|
|
|
66
|
-
# =============================================================================
|
|
67
|
-
# Tests for _validate_classifiers
|
|
68
|
-
# =============================================================================
|
|
69
|
-
|
|
70
|
-
|
|
71
56
|
class TestValidateClassifiers:
|
|
72
57
|
"""Tests for classifier validation."""
|
|
73
58
|
|
|
@@ -100,11 +85,6 @@ class TestValidateClassifiers:
|
|
|
100
85
|
assert mock_is_valid.call_count == 2
|
|
101
86
|
|
|
102
87
|
|
|
103
|
-
# =============================================================================
|
|
104
|
-
# Tests for _resolve_target_content
|
|
105
|
-
# =============================================================================
|
|
106
|
-
|
|
107
|
-
|
|
108
88
|
class TestResolveTargetContent:
|
|
109
89
|
"""Tests for target content resolution."""
|
|
110
90
|
|
|
@@ -117,7 +97,7 @@ class TestResolveTargetContent:
|
|
|
117
97
|
"test", "feature", merge=False, override=False
|
|
118
98
|
)
|
|
119
99
|
|
|
120
|
-
assert "already
|
|
100
|
+
assert "already existing" in str(exc_info.value)
|
|
121
101
|
|
|
122
102
|
def test_returns_content_when_merge_flag_set(self, converter):
|
|
123
103
|
"""Returns existing content when merge flag is set."""
|
|
@@ -155,11 +135,6 @@ class TestResolveTargetContent:
|
|
|
155
135
|
assert result is None
|
|
156
136
|
|
|
157
137
|
|
|
158
|
-
# =============================================================================
|
|
159
|
-
# Tests for _get_target_class
|
|
160
|
-
# =============================================================================
|
|
161
|
-
|
|
162
|
-
|
|
163
138
|
class TestGetTargetClass:
|
|
164
139
|
"""Tests for getting target artefact class."""
|
|
165
140
|
|
|
@@ -175,11 +150,6 @@ class TestGetTargetClass:
|
|
|
175
150
|
converter._get_target_class("definitely_not_a_type")
|
|
176
151
|
|
|
177
152
|
|
|
178
|
-
# =============================================================================
|
|
179
|
-
# Tests for _get_prompt
|
|
180
|
-
# =============================================================================
|
|
181
|
-
|
|
182
|
-
|
|
183
153
|
class TestGetPrompt:
|
|
184
154
|
"""Tests for prompt generation."""
|
|
185
155
|
|
|
@@ -239,11 +209,6 @@ class TestGetPrompt:
|
|
|
239
209
|
assert result == "langfuse prompt"
|
|
240
210
|
|
|
241
211
|
|
|
242
|
-
# =============================================================================
|
|
243
|
-
# Tests for _run_conversion_agent
|
|
244
|
-
# =============================================================================
|
|
245
|
-
|
|
246
|
-
|
|
247
212
|
class TestRunConversionAgent:
|
|
248
213
|
"""Tests for running the conversion agent."""
|
|
249
214
|
|
|
@@ -273,11 +238,6 @@ class TestRunConversionAgent:
|
|
|
273
238
|
assert "LLM conversion failed" in str(exc_info.value)
|
|
274
239
|
|
|
275
240
|
|
|
276
|
-
# =============================================================================
|
|
277
|
-
# Tests for _write_artefact
|
|
278
|
-
# =============================================================================
|
|
279
|
-
|
|
280
|
-
|
|
281
241
|
class TestWriteArtefact:
|
|
282
242
|
"""Tests for writing converted artefacts."""
|
|
283
243
|
|
|
@@ -328,11 +288,6 @@ class TestWriteArtefact:
|
|
|
328
288
|
assert "already exists" in str(exc_info.value)
|
|
329
289
|
|
|
330
290
|
|
|
331
|
-
# =============================================================================
|
|
332
|
-
# Tests for convert (integration)
|
|
333
|
-
# =============================================================================
|
|
334
|
-
|
|
335
|
-
|
|
336
291
|
class TestConvert:
|
|
337
292
|
"""Integration tests for the convert method."""
|
|
338
293
|
|
tests/test_artefact_lister.py
CHANGED
|
@@ -134,8 +134,9 @@ def test_list_files(
|
|
|
134
134
|
expected_filtered,
|
|
135
135
|
):
|
|
136
136
|
# Mock ArtefactReader.read_artefacts
|
|
137
|
-
with patch("ara_cli.artefact_lister.ArtefactReader") as
|
|
138
|
-
|
|
137
|
+
with patch("ara_cli.artefact_lister.ArtefactReader") as mock_reader_class:
|
|
138
|
+
mock_reader_instance = mock_reader_class.return_value
|
|
139
|
+
mock_reader_instance.read_artefacts.return_value = mock_artefacts
|
|
139
140
|
|
|
140
141
|
# Mock filter_artefacts method
|
|
141
142
|
artefact_lister.filter_artefacts = MagicMock(return_value=filtered_artefacts)
|
|
@@ -153,7 +154,7 @@ def test_list_files(
|
|
|
153
154
|
)
|
|
154
155
|
|
|
155
156
|
# Verify the correct calls were made
|
|
156
|
-
|
|
157
|
+
mock_reader_instance.read_artefacts.assert_called_once_with(tags=tags)
|
|
157
158
|
artefact_lister.filter_artefacts.assert_called_once_with(
|
|
158
159
|
mock_artefacts, list_filter
|
|
159
160
|
)
|
|
@@ -233,7 +234,8 @@ def test_list_children(
|
|
|
233
234
|
mock_classifier_instance.classify_files.return_value = classified_artefacts
|
|
234
235
|
|
|
235
236
|
# Configure ArtefactReader mock
|
|
236
|
-
mock_artefact_reader.
|
|
237
|
+
mock_reader_instance = mock_artefact_reader.return_value
|
|
238
|
+
mock_reader_instance.find_children.return_value = child_artefacts
|
|
237
239
|
|
|
238
240
|
# Mock filter_artefacts method
|
|
239
241
|
artefact_lister.filter_artefacts = MagicMock(return_value=filtered_artefacts)
|
|
@@ -253,7 +255,7 @@ def test_list_children(
|
|
|
253
255
|
mock_suggest.assert_not_called()
|
|
254
256
|
|
|
255
257
|
# Verify ArtefactReader.find_children was called
|
|
256
|
-
|
|
258
|
+
mock_reader_instance.find_children.assert_called_once_with(
|
|
257
259
|
artefact_name=artefact_name, classifier=classifier
|
|
258
260
|
)
|
|
259
261
|
|
|
@@ -348,7 +350,8 @@ def test_list_branch(
|
|
|
348
350
|
for k, v in value_chain_artefacts.items():
|
|
349
351
|
artefacts_by_classifier[k] = v
|
|
350
352
|
|
|
351
|
-
|
|
353
|
+
mock_reader_instance = mock_artefact_reader.return_value
|
|
354
|
+
mock_reader_instance.step_through_value_chain.side_effect = mock_step_through
|
|
352
355
|
|
|
353
356
|
# Mock filter_artefacts method
|
|
354
357
|
artefact_lister.filter_artefacts = MagicMock(return_value=filtered_artefacts)
|
|
@@ -369,8 +372,8 @@ def test_list_branch(
|
|
|
369
372
|
mock_suggest.assert_not_called()
|
|
370
373
|
|
|
371
374
|
# Verify ArtefactReader.step_through_value_chain was called with correct parameters
|
|
372
|
-
|
|
373
|
-
call_args =
|
|
375
|
+
mock_reader_instance.step_through_value_chain.assert_called_once()
|
|
376
|
+
call_args = mock_reader_instance.step_through_value_chain.call_args[1]
|
|
374
377
|
assert call_args["artefact_name"] == artefact_name
|
|
375
378
|
assert call_args["classifier"] == classifier
|
|
376
379
|
assert classifier in call_args["artefacts_by_classifier"]
|
tests/test_chat.py
CHANGED
|
@@ -14,7 +14,7 @@ from ara_cli.chat import Chat
|
|
|
14
14
|
from ara_cli.error_handler import AraError
|
|
15
15
|
from ara_cli.template_manager import TemplatePathManager
|
|
16
16
|
from ara_cli.ara_config import ConfigManager
|
|
17
|
-
from ara_cli.file_loaders.text_file_loader import TextFileLoader
|
|
17
|
+
from ara_cli.file_loaders.loaders.text_file_loader import TextFileLoader
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
def get_default_config():
|
|
@@ -492,7 +492,7 @@ def test_send_message(
|
|
|
492
492
|
|
|
493
493
|
mock_chunks = [mock_chunk1, mock_chunk2]
|
|
494
494
|
|
|
495
|
-
with patch("ara_cli.
|
|
495
|
+
with patch("ara_cli.prompt_handler.send_prompt", return_value=mock_chunks), patch.object(
|
|
496
496
|
chat, "get_last_line", return_value=last_line_in_file
|
|
497
497
|
), patch.object(chat, "assemble_prompt", return_value="mocked prompt"):
|
|
498
498
|
|
|
@@ -743,7 +743,7 @@ def test_load_binary_file(temp_chat_file, path_exists):
|
|
|
743
743
|
|
|
744
744
|
# We patch open within the loader's module
|
|
745
745
|
with patch(
|
|
746
|
-
"ara_cli.file_loaders.binary_file_loader.open",
|
|
746
|
+
"ara_cli.file_loaders.loaders.binary_file_loader.open",
|
|
747
747
|
mock_open(read_data=file_content),
|
|
748
748
|
) as mock_loader_open:
|
|
749
749
|
|
|
@@ -819,7 +819,7 @@ def test_load_document_file(
|
|
|
819
819
|
mock_setup(mock_modules[module_to_mock])
|
|
820
820
|
|
|
821
821
|
with patch(
|
|
822
|
-
"
|
|
822
|
+
"builtins.open", mock_open()
|
|
823
823
|
) as mock_chat_open:
|
|
824
824
|
# FIX: Call with a positional argument `file_name` as the decorator expects, not a keyword `file_path`.
|
|
825
825
|
result = chat.load_document_file(
|
tests/test_chat_givens_images.py
CHANGED
|
@@ -535,7 +535,7 @@ class TestBinaryContentAppending:
|
|
|
535
535
|
|
|
536
536
|
# Mock the open calls to capture what gets written
|
|
537
537
|
with patch(
|
|
538
|
-
"ara_cli.file_loaders.binary_file_loader.open",
|
|
538
|
+
"ara_cli.file_loaders.loaders.binary_file_loader.open",
|
|
539
539
|
mock_open(read_data=binary_content),
|
|
540
540
|
) as mock_file:
|
|
541
541
|
chat.load_binary_file(binary_file, mime_type="image/png")
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from unittest.mock import MagicMock, patch
|
|
3
|
+
from ara_cli.children_contribution_updater import ChildrenContributionUpdater
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class TestChildrenContributionUpdater:
|
|
7
|
+
|
|
8
|
+
@pytest.fixture
|
|
9
|
+
def updater(self):
|
|
10
|
+
return ChildrenContributionUpdater()
|
|
11
|
+
|
|
12
|
+
@patch(
|
|
13
|
+
"ara_cli.children_contribution_updater.ChildrenContributionUpdater._find_children"
|
|
14
|
+
)
|
|
15
|
+
@patch(
|
|
16
|
+
"ara_cli.children_contribution_updater.ChildrenContributionUpdater._count_children"
|
|
17
|
+
)
|
|
18
|
+
@patch("ara_cli.children_contribution_updater.Classifier.can_have_children")
|
|
19
|
+
@patch(
|
|
20
|
+
"ara_cli.children_contribution_updater.ChildrenContributionUpdater._check_target_exists"
|
|
21
|
+
)
|
|
22
|
+
@patch(
|
|
23
|
+
"ara_cli.children_contribution_updater.ChildrenContributionUpdater._get_common_valid_parents"
|
|
24
|
+
)
|
|
25
|
+
def test_get_children_info_basic(
|
|
26
|
+
self,
|
|
27
|
+
mock_common_parents,
|
|
28
|
+
mock_check_exists,
|
|
29
|
+
mock_can_have_children,
|
|
30
|
+
mock_count,
|
|
31
|
+
mock_find,
|
|
32
|
+
updater,
|
|
33
|
+
):
|
|
34
|
+
mock_find.return_value = {"task": [MagicMock(title="T1")]}
|
|
35
|
+
mock_count.return_value = 1
|
|
36
|
+
mock_can_have_children.return_value = True
|
|
37
|
+
mock_check_exists.return_value = False
|
|
38
|
+
mock_common_parents.return_value = ["epic"]
|
|
39
|
+
|
|
40
|
+
info = updater.get_children_info("P1", "feature", "story")
|
|
41
|
+
|
|
42
|
+
assert info["has_children"] is True
|
|
43
|
+
assert info["children_count"] == 1
|
|
44
|
+
assert info["target_can_have_children"] is True
|
|
45
|
+
assert info["requires_action"] is False
|
|
46
|
+
assert info["target_exists"] is False
|
|
47
|
+
assert (
|
|
48
|
+
info["message"]
|
|
49
|
+
== "Found 1 children. They will be updated to reference the new classifier."
|
|
50
|
+
)
|
|
51
|
+
assert "task" in info["children"]
|
|
52
|
+
assert info["children"]["task"][0]["title"] == "T1"
|
|
53
|
+
|
|
54
|
+
@patch(
|
|
55
|
+
"ara_cli.children_contribution_updater.ChildrenContributionUpdater._find_children"
|
|
56
|
+
)
|
|
57
|
+
@patch(
|
|
58
|
+
"ara_cli.children_contribution_updater.ChildrenContributionUpdater._count_children"
|
|
59
|
+
)
|
|
60
|
+
@patch("ara_cli.children_contribution_updater.Classifier.can_have_children")
|
|
61
|
+
@patch(
|
|
62
|
+
"ara_cli.children_contribution_updater.ChildrenContributionUpdater._check_target_exists"
|
|
63
|
+
)
|
|
64
|
+
def test_get_children_info_requires_action(
|
|
65
|
+
self, mock_check_exists, mock_can_have_children, mock_count, mock_find, updater
|
|
66
|
+
):
|
|
67
|
+
mock_find.return_value = {"task": []}
|
|
68
|
+
mock_count.return_value = 1
|
|
69
|
+
mock_can_have_children.return_value = False # Target cannot have children
|
|
70
|
+
mock_check_exists.return_value = False
|
|
71
|
+
|
|
72
|
+
info = updater.get_children_info("P1", "feature", "task")
|
|
73
|
+
|
|
74
|
+
assert info["requires_action"] is True
|
|
75
|
+
assert "requires handling 1 children" in info["message"]
|
|
76
|
+
|
|
77
|
+
@patch(
|
|
78
|
+
"ara_cli.children_contribution_updater.ChildrenContributionUpdater._find_children"
|
|
79
|
+
)
|
|
80
|
+
@patch(
|
|
81
|
+
"ara_cli.children_contribution_updater.ChildrenContributionUpdater._count_children"
|
|
82
|
+
)
|
|
83
|
+
@patch("ara_cli.children_contribution_updater.Classifier.can_have_children")
|
|
84
|
+
@patch(
|
|
85
|
+
"ara_cli.children_contribution_updater.ChildrenContributionUpdater._check_target_exists"
|
|
86
|
+
)
|
|
87
|
+
def test_get_children_info_target_exists(
|
|
88
|
+
self, mock_check_exists, mock_can_have_children, mock_count, mock_find, updater
|
|
89
|
+
):
|
|
90
|
+
mock_find.return_value = {}
|
|
91
|
+
mock_count.return_value = 0
|
|
92
|
+
mock_can_have_children.return_value = True
|
|
93
|
+
mock_check_exists.return_value = True
|
|
94
|
+
|
|
95
|
+
info = updater.get_children_info("P1", "feature", "story")
|
|
96
|
+
|
|
97
|
+
assert info["target_exists"] is True
|
|
98
|
+
assert "already exists" in info["message"]
|