pytest-dsl 0.5.0__py3-none-any.whl → 0.6.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.
Files changed (36) hide show
  1. pytest_dsl/cli.py +28 -33
  2. pytest_dsl/core/auto_decorator.py +72 -53
  3. pytest_dsl/core/auto_directory.py +8 -5
  4. pytest_dsl/core/dsl_executor.py +56 -11
  5. pytest_dsl/core/http_request.py +272 -221
  6. pytest_dsl/core/lexer.py +3 -13
  7. pytest_dsl/core/parser.py +2 -2
  8. pytest_dsl/core/parsetab.py +69 -69
  9. pytest_dsl/core/plugin_discovery.py +1 -8
  10. pytest_dsl/core/yaml_loader.py +96 -19
  11. pytest_dsl/examples/assert/assertion_example.auto +1 -1
  12. pytest_dsl/examples/assert/boolean_test.auto +2 -2
  13. pytest_dsl/examples/assert/expression_test.auto +1 -1
  14. pytest_dsl/examples/custom/test_advanced_keywords.auto +2 -2
  15. pytest_dsl/examples/custom/test_custom_keywords.auto +2 -2
  16. pytest_dsl/examples/custom/test_default_values.auto +2 -2
  17. pytest_dsl/examples/http/file_reference_test.auto +1 -1
  18. pytest_dsl/examples/http/http_advanced.auto +1 -1
  19. pytest_dsl/examples/http/http_example.auto +1 -1
  20. pytest_dsl/examples/http/http_length_test.auto +1 -1
  21. pytest_dsl/examples/http/http_retry_assertions.auto +1 -1
  22. pytest_dsl/examples/http/http_retry_assertions_enhanced.auto +2 -2
  23. pytest_dsl/examples/http/http_with_yaml.auto +1 -1
  24. pytest_dsl/examples/quickstart/api_basics.auto +1 -1
  25. pytest_dsl/examples/quickstart/assertions.auto +1 -1
  26. pytest_dsl/examples/quickstart/loops.auto +2 -2
  27. pytest_dsl/keywords/assertion_keywords.py +76 -62
  28. pytest_dsl/keywords/global_keywords.py +43 -4
  29. pytest_dsl/keywords/http_keywords.py +58 -56
  30. {pytest_dsl-0.5.0.dist-info → pytest_dsl-0.6.0.dist-info}/METADATA +138 -9
  31. pytest_dsl-0.6.0.dist-info/RECORD +68 -0
  32. {pytest_dsl-0.5.0.dist-info → pytest_dsl-0.6.0.dist-info}/WHEEL +1 -1
  33. pytest_dsl-0.5.0.dist-info/RECORD +0 -68
  34. {pytest_dsl-0.5.0.dist-info → pytest_dsl-0.6.0.dist-info}/entry_points.txt +0 -0
  35. {pytest_dsl-0.5.0.dist-info → pytest_dsl-0.6.0.dist-info}/licenses/LICENSE +0 -0
  36. {pytest_dsl-0.5.0.dist-info → pytest_dsl-0.6.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pytest-dsl
3
- Version: 0.5.0
3
+ Version: 0.6.0
4
4
  Summary: A DSL testing framework based on pytest
5
5
  Author: Chen Shuanglin
6
6
  License: MIT
@@ -60,7 +60,7 @@ for i in range(1, 3) do
60
60
  [打印],内容: "循环次数: ${i}"
61
61
  end
62
62
 
63
- @teardown do
63
+ teardown do
64
64
  [打印],内容: "测试完成!"
65
65
  end
66
66
  ```
@@ -147,7 +147,7 @@ pytest-dsl允许在DSL文件中直接定义自定义关键字,类似于编程
147
147
  @name: "自定义关键字示例"
148
148
 
149
149
  # 定义一个简单的关键字(函数)
150
- @keyword 拼接字符串 (前缀, 后缀="默认后缀") do
150
+ function 拼接字符串 (前缀, 后缀="默认后缀") do
151
151
  # 直接使用关键字参数
152
152
  [打印],内容: "拼接前缀: ${前缀} 和后缀: ${后缀}"
153
153
 
@@ -186,7 +186,7 @@ end
186
186
  @author: Felix
187
187
  @date: 2024-06-11
188
188
 
189
- @keyword 拼接字符串 (前缀, 后缀="我是默认值哦") do
189
+ function 拼接字符串 (前缀, 后缀="我是默认值哦") do
190
190
  # 直接使用关键字参数
191
191
  [打印],内容:'拼接前缀: ${前缀} 和后缀: ${后缀}'
192
192
 
@@ -198,7 +198,7 @@ end
198
198
  return ${结果变量}
199
199
  end
200
200
 
201
- @keyword 计算长度 (文本) do
201
+ function 计算长度 (文本) do
202
202
  # 在实际场景中,可能会使用更复杂的逻辑
203
203
  [打印],内容:'计算文本: ${文本} 的长度'
204
204
  长度 = 10 # 为简化示例,这里使用固定值
@@ -277,7 +277,7 @@ end
277
277
  [断言],条件:'${拼接结果} == "你好, 世界"',消息:'字符串拼接不匹配'
278
278
  [断言],条件:'${文本长度} == 10',消息:'长度不匹配'
279
279
 
280
- @teardown do
280
+ teardown do
281
281
  [打印],内容:'自定义关键字测试完成'
282
282
  end
283
283
  ```
@@ -429,7 +429,7 @@ def call_microservice(**kwargs):
429
429
  │ └── api_tests/ # DSL测试文件目录
430
430
  │ ├── login.dsl
431
431
  │ └── users.dsl
432
- ├── vars/ # 变量文件
432
+ ├── config/ # 变量文件
433
433
  │ ├── dev.yaml # 开发环境配置
434
434
  │ └── prod.yaml # 生产环境配置
435
435
  └── pytest.ini # pytest配置
@@ -505,6 +505,8 @@ pytest-dsl-server --api-key your_secret_key
505
505
 
506
506
  ### 远程关键字语法
507
507
 
508
+ #### 方式一:DSL中导入(适合临时使用)
509
+
508
510
  ```python
509
511
  # 导入远程关键字服务器
510
512
  @remote: "http://keyword-server:8270/" as machineone
@@ -515,6 +517,34 @@ machineone|[打印],内容: "这是通过远程服务器执行的关键字"
515
517
  结果 = machineone|[拼接字符串],前缀: "Hello, ",后缀: "Remote World!"
516
518
  ```
517
519
 
520
+ #### 方式二:YAML配置自动加载(推荐用于全局配置)
521
+
522
+ 在`config/vars.yaml`或其他YAML配置文件中添加:
523
+
524
+ ```yaml
525
+ # 远程服务器配置
526
+ remote_servers:
527
+ main_server:
528
+ url: "http://localhost:8270/"
529
+ alias: "main"
530
+ api_key: "your_api_key_here" # 可选
531
+ sync_config: # 可选
532
+ sync_global_vars: true
533
+ sync_yaml_vars: true
534
+
535
+ backup_server:
536
+ url: "http://backup-host:8270/"
537
+ alias: "backup"
538
+ ```
539
+
540
+ 然后在DSL中直接使用:
541
+
542
+ ```python
543
+ # 无需@remote导入,直接使用YAML中配置的服务器
544
+ main|[打印],内容: "使用主服务器"
545
+ backup|[打印],内容: "使用备用服务器"
546
+ ```
547
+
518
548
  ### 远程关键字测试示例
519
549
 
520
550
  ```python
@@ -529,13 +559,104 @@ machineone|[打印],内容: "这是通过远程服务器执行的关键字"
529
559
 
530
560
  # 基本打印测试
531
561
  machineone|[打印],内容: "这是通过远程服务器执行的关键字"
562
+ ```
563
+
564
+ ## 无缝变量传递功能
565
+
566
+ pytest-dsl提供了革命性的无缝变量传递功能,客户端的变量会自动传递到服务端,服务端使用时完全透明,无需任何前缀或特殊语法。
567
+
568
+ ### 功能特性
569
+
570
+ - **🔄 无缝传递**:客户端变量自动传递到远程服务器,服务端使用时无需前缀
571
+ - **🛡️ 智能过滤**:自动过滤敏感信息(password、secret、key等)
572
+ - **⚡ 零配置**:无需复杂的同步设置,开箱即用
573
+ - **🎯 优先级保持**:保持变量访问优先级(本地 > 同步)
574
+ - **🔒 完全隔离**:不同服务器的变量完全隔离,互不影响
575
+
576
+ ### 基本使用
577
+
578
+ **客户端配置 (vars.yaml)**:
579
+ ```yaml
580
+ # 全局变量
581
+ g_base_url: "https://api.example.com"
582
+
583
+ # HTTP客户端配置
584
+ http_clients:
585
+ default:
586
+ base_url: "${g_base_url}"
587
+ timeout: 30
588
+
589
+ # 测试数据
590
+ test_data:
591
+ username: "testuser"
592
+ email: "test@example.com"
593
+
594
+ # 敏感信息(会被自动过滤)
595
+ password: "secret123"
596
+ api_key: "sk-1234567890"
597
+ ```
598
+
599
+ **DSL测试脚本**:
600
+ ```python
601
+ # 导入远程关键字服务器(连接时自动传递变量)
602
+ @remote: "http://localhost:8270/" as remote_server
603
+
604
+ # 远程关键字直接使用客户端变量,无需前缀!
605
+ remote_server|[HTTP请求], 客户端: "default", 配置: '''
606
+ request:
607
+ method: GET
608
+ url: ${g_base_url}/api/data
609
+ headers:
610
+ X-User: ${test_data.username}
611
+ X-Email: ${test_data.email}
612
+ '''
613
+
614
+ # 全局变量也可以直接使用
615
+ remote_server|[打印], 内容: "API地址: ${g_base_url}"
616
+ ```
617
+
618
+ ### 配置选项
619
+
620
+ 可以通过sync_config参数控制传递行为:
621
+
622
+ ```python
623
+ # 自定义传递配置
624
+ sync_config = {
625
+ 'sync_global_vars': True, # 是否传递全局变量
626
+ 'sync_yaml_vars': True, # 是否传递YAML配置变量
627
+ }
628
+
629
+ # 使用自定义配置连接
630
+ client = RemoteKeywordClient(sync_config=sync_config)
631
+ ```
632
+
633
+ ### 应用场景
634
+
635
+ 1. **🌐 跨环境测试**:客户端配置自动传递到不同环境的远程服务器
636
+ 2. **🔧 配置统一管理**:HTTP客户端、数据库连接等配置在客户端统一管理
637
+ 3. **🏢 企业级部署**:测试配置集中管理,远程执行节点自动获取
638
+ 4. **🔒 安全隔离**:敏感信息自动过滤,确保安全性
639
+ 5. **⚡ 性能优化**:计算密集型任务在远程高性能服务器执行,配置无缝传递
532
640
 
533
641
  # 随机数生成测试
534
642
  随机数 = [生成随机数],最小值: 1,最大值: 100
535
643
  machineone|[打印],内容: "远程生成的随机数: ${随机数}"
536
644
  ```
537
645
 
538
- > **注意**:当前远程关键字模式在HTTP请求关键字上支持的不是太好,后续会优化关键字实现,提升远程关键字的功能和稳定性。
646
+ ### 远程关键字功能特性
647
+
648
+ 远程关键字功能已经完全支持所有内置关键字,包括:
649
+
650
+ - ✅ **HTTP请求关键字**:完整支持变量捕获、会话管理和响应保存
651
+ - ✅ **断言关键字**:支持各种断言操作
652
+ - ✅ **全局变量管理**:远程和本地环境独立的全局变量空间
653
+ - ✅ **JSON操作**:JSON提取和断言功能
654
+ - ✅ **工具关键字**:随机数生成、字符串操作等
655
+ - ✅ **时间关键字**:时间获取和格式化
656
+
657
+ 详细的使用指南和开发文档请参考:
658
+ - 📖 [远程关键字使用指南](./docs/remote-keywords-usage.md)
659
+ - 🛠️ [远程关键字开发指南](./docs/remote-keywords-development.md)
539
660
 
540
661
  ### 远程关键字服务安全性
541
662
 
@@ -576,12 +697,20 @@ machineone|[打印],内容: "远程生成的随机数: ${随机数}"
576
697
 
577
698
  ## 进阶文档
578
699
 
700
+ ### 核心功能文档
579
701
  - [完整DSL语法指南](./docs/自动化关键字DSL语法设计.md)
580
702
  - [创建自定义关键字](./pytest_dsl/docs/custom_keywords.md)
581
703
  - [HTTP测试关键字](./docs/api.md)
582
704
  - [断言关键字详解](./docs/assertion_keywords.md)
583
705
  - [HTTP断言重试机制](./docs/http_assertion_retry.md)
584
- - [远程关键字语法示例](./docs/remote_syntax_example.md)
706
+
707
+ ### 远程关键字文档
708
+ - 📖 [远程关键字使用指南](./docs/remote-keywords-usage.md) - 如何使用远程关键字功能
709
+ - 🛠️ [远程关键字开发指南](./docs/remote-keywords-development.md) - 如何开发支持远程模式的关键字
710
+ - 🔧 [远程服务器Hook机制指南](./docs/remote-hooks-guide.md) - 如何使用hook机制扩展远程服务器功能和实现自定义授权
711
+ - ⚙️ [YAML远程服务器配置指南](./docs/yaml_remote_servers.md) - 如何通过YAML配置自动加载远程服务器
712
+ - 🔄 [YAML变量无缝传递功能](./docs/yaml_vars_seamless_sync.md) - 如何实现客户端YAML变量的无缝传递
713
+ - [远程关键字语法示例](./docs/remote_syntax_example.md) - 基础语法示例
585
714
 
586
715
  ## 贡献与支持
587
716
 
@@ -0,0 +1,68 @@
1
+ pytest_dsl/__init__.py,sha256=FzwXGvmuvMhRBKxvCdh1h-yJ2wUOnDxcTbU4Nt5fHn8,301
2
+ pytest_dsl/cli.py,sha256=rOkGrHaBJE0a0QmT1YTob-z8N5kpnzYowrgCdZrfVzE,4467
3
+ pytest_dsl/conftest_adapter.py,sha256=cevEb0oEZKTZfUrGe1-CmkFByxKhUtjuurBJP7kpLc0,149
4
+ pytest_dsl/main_adapter.py,sha256=pUIPN_EzY3JCDlYK7yF_OeLDVqni8vtG15G7gVzPJXg,181
5
+ pytest_dsl/parsetab.py,sha256=n_-2YnNszS-nq26HI8YbEBhvpNq7n_-092iXlsz34wA,8536
6
+ pytest_dsl/plugin.py,sha256=MEQcdK0xdxwxCxPEDLNHX_kGF9Jc7bNxlNi4mx588DU,1190
7
+ pytest_dsl/core/__init__.py,sha256=ersUoxIWSrisxs9GX_STlH4XAbjNxAWUQB0NboaC5zI,322
8
+ pytest_dsl/core/auth_provider.py,sha256=IZfXXrr4Uuc8QHwRPvhHSzNa2fwrqhjYts1xh78D39Q,14861
9
+ pytest_dsl/core/auto_decorator.py,sha256=9Mga-GB4AzV5nkB6zpfaq8IuHa0KOH8LlFvnWyH_tnU,6623
10
+ pytest_dsl/core/auto_directory.py,sha256=egyTnVxtGs4P75EIivRauLRPJfN9aZpoGVvp_Ma72AM,2714
11
+ pytest_dsl/core/context.py,sha256=fXpVQon666Lz_PCexjkWMBBr-Xcd1SkDMp2vHar6eIs,664
12
+ pytest_dsl/core/custom_keyword_manager.py,sha256=QY-wXvzON2kkFwojBSXqWcQpo_aKixKhG-rsacV8gzE,7955
13
+ pytest_dsl/core/dsl_executor.py,sha256=hOpH7wh4Aeb9KNqdDBCs2duJopQN3QG1cyAzk9jMeas,26435
14
+ pytest_dsl/core/dsl_executor_utils.py,sha256=cFoR2p3qQ2pb-UhkoefleK-zbuFqf0aBLh2Rlp8Ebs4,2180
15
+ pytest_dsl/core/global_context.py,sha256=NcEcS2V61MT70tgAsGsFWQq0P3mKjtHQr1rgT3yTcyY,3535
16
+ pytest_dsl/core/http_client.py,sha256=1AHqtM_fkXf8JrM0ljMsJwUkyt-ysjR16NoyCckHfGc,15810
17
+ pytest_dsl/core/http_request.py,sha256=nGMlx0mFc7rDLIdp9GJ3e09OQH3ryUA56yJdRZ99dOQ,57445
18
+ pytest_dsl/core/keyword_manager.py,sha256=FtPsXlI7PxvVQMJfDN_nQYvRhkag5twvaHXjELQsCEo,4068
19
+ pytest_dsl/core/lexer.py,sha256=VNSiD3VU7ZqaMAfyJww0NvEgVT1guz_YU7GEcfSC2xk,3546
20
+ pytest_dsl/core/parser.py,sha256=6GOq1ufIY_4_q4dSOqGDIirqvnw7_uzPjVqy1HcvD0I,10024
21
+ pytest_dsl/core/parsetab.py,sha256=D8gQiQ0cCJENxG_OmgJ_sJ_FR2mUsd3PHAc536q60U8,23989
22
+ pytest_dsl/core/plugin_discovery.py,sha256=vcO4-I9o4GSffLDd36idhOz6XUI1K7JhOQWwhpCDoNw,6523
23
+ pytest_dsl/core/utils.py,sha256=INyuWAX_yhgU9JwSUxVjoB1iI1J6Gy4cVEXZsjJTAOg,4765
24
+ pytest_dsl/core/variable_utils.py,sha256=6uY-SWtGMyVvpFb8Sw-5u8oPzNnPQKl0pt9-8mBpwac,9167
25
+ pytest_dsl/core/yaml_loader.py,sha256=IOzRP3iEaVJ-4UiZGkuwy5VAD8_pWQjKHD0tZhwIGb8,4858
26
+ pytest_dsl/core/yaml_vars.py,sha256=4Z0q9_ergpDjMrNUS0qU5oHrPPLYOL91bWoNxCioSLw,2551
27
+ pytest_dsl/docs/custom_keywords.md,sha256=03dA_GeHxoLixA8Sqch14bhTbxXQCSfz9Kvged2fMCo,4381
28
+ pytest_dsl/examples/__init__.py,sha256=FKkyLFOjxfC6XnJlW7iK_BUIX9dTIpXgoYN1pfs91ss,84
29
+ pytest_dsl/examples/test_assert.py,sha256=zJ9bflsbyyl7v5AKdLHYTVPI4pe8QiQoeym-ULAs0tk,343
30
+ pytest_dsl/examples/test_custom_keyword.py,sha256=4R8DPmlzRB9Aw_YPUWezxZSNG5eHb6y81tKPGgFsGNM,221
31
+ pytest_dsl/examples/test_http.py,sha256=bjOV5YUsi_2Sb2H8y8e4ClF0kYTuWbRkXY-nYyVX4Tc,666
32
+ pytest_dsl/examples/test_quickstart.py,sha256=LfEJ8UM7wDm6X-iZWA5Y70W3KAni-48aDe7aKX_DsyE,322
33
+ pytest_dsl/examples/assert/assertion_example.auto,sha256=i6uuuWTch5O3Ml4HOwK4LV-GM03HZoBtvVoNl8qXnmQ,1605
34
+ pytest_dsl/examples/assert/boolean_test.auto,sha256=TP3teJ6oVfC1sQifyuBXQGqxIb2gTH2CxCbd3kvfZa0,1364
35
+ pytest_dsl/examples/assert/expression_test.auto,sha256=eI4YTz2KGDG96qMiUOqB2Dza7MiCgaNZovyKHIcBP4o,1946
36
+ pytest_dsl/examples/custom/test_advanced_keywords.auto,sha256=2qWczeWKG6nSt4S76U89xmHwN9w1W8uf2LKnq4AHqzc,1220
37
+ pytest_dsl/examples/custom/test_custom_keywords.auto,sha256=1UWR35SnZqJyvYX49O-VClBjhHdF7Xct3Is2Uv1bMmU,1141
38
+ pytest_dsl/examples/custom/test_default_values.auto,sha256=OuxilIguf5wTnGqqxjnWthkR82kwq9h0c7e_-aHC-dE,1363
39
+ pytest_dsl/examples/http/__init__.py,sha256=TCV9NzLmBbPDwNpLQs4_s_LlX9T47ApQ5UAr0gHm0bE,40
40
+ pytest_dsl/examples/http/builtin_auth_test.auto,sha256=qZYpmxTBW018E5YQ4c8bbnoByEA3Y7BzpPfLJtDwMKQ,2374
41
+ pytest_dsl/examples/http/file_reference_test.auto,sha256=lHDxuR9NWp-DdASRUt5xNlcOn7FtmLu6oAGDvSsMpeo,3870
42
+ pytest_dsl/examples/http/http_advanced.auto,sha256=rVEtEY93rYcSrQJ7ntwW-GbHm8wltDobgd-KydIdVLU,2595
43
+ pytest_dsl/examples/http/http_example.auto,sha256=y_5g6p3ydUoksovJd-21uAfKzcvvIA7iFJhyxx64rLc,4988
44
+ pytest_dsl/examples/http/http_length_test.auto,sha256=GYlFtSj0Nfk_9aqQrCXvRlwvTJHOk9CIf8X1CV_VKJg,1972
45
+ pytest_dsl/examples/http/http_retry_assertions.auto,sha256=zn3a54Mk4tpwi9l7qy3D4UWeci5kZJmQjXOoKuSQIwo,3332
46
+ pytest_dsl/examples/http/http_retry_assertions_enhanced.auto,sha256=xIPGujQ1Oll1fi8LW1ZGuyAryu2RjK50_utA8cfKs88,3182
47
+ pytest_dsl/examples/http/http_with_yaml.auto,sha256=u6Bw4EqQuQAMV-g2xS_iPmZwL4WRTpTqsJhL3xMRyfo,1942
48
+ pytest_dsl/examples/http/new_retry_test.auto,sha256=XBTD3NnyVnKr23FVy6xa_5RJq76k8pUR3rFwZe30RRI,664
49
+ pytest_dsl/examples/http/retry_assertions_only.auto,sha256=l2MNtJVhJ4vt3jsue1QsoyEAZrNcwyeINmHDfSEOgyk,1867
50
+ pytest_dsl/examples/http/retry_config_only.auto,sha256=6zof7HvFdBG6SEZ_ZnHygsuu9hpRpFEj-z1uPwaCSSc,1479
51
+ pytest_dsl/examples/http/retry_debug.auto,sha256=wHIGtkCG8p7x4KP1A1nuz6usroU1Pwfep5wkIffgEQo,854
52
+ pytest_dsl/examples/http/retry_with_fix.auto,sha256=BU8HeFtY8xor9o9XV_h-yx45_ZP0iAS-Ec12FE_7fNA,649
53
+ pytest_dsl/examples/http/simple_retry.auto,sha256=Y7S8sR8VRjdk-iVJxcOD0Fb2tt_RO00BmA9eat3L0ks,569
54
+ pytest_dsl/examples/http/vars.yaml,sha256=GO0x6kpaUYk90TSOxtXh_3RYcacw8-ogBv5nG72Lr9Y,1186
55
+ pytest_dsl/examples/quickstart/api_basics.auto,sha256=SrDRBASqy5ZMXnmfczuKNCXoTijF54DChpeTrfsDtGQ,1544
56
+ pytest_dsl/examples/quickstart/assertions.auto,sha256=FWrwod3L8oxuKCnA-lnVO2fzs5bZsXWaVqd6zehKrzw,859
57
+ pytest_dsl/examples/quickstart/loops.auto,sha256=ZNZ6qP636v8QMY8QRyTUBB43gWCsqHbpPQw2RqamvOk,516
58
+ pytest_dsl/keywords/__init__.py,sha256=5aiyPU_t1UiB2MEZ6M9ffOKnV1mFT_2YHxnZvyWaBNI,372
59
+ pytest_dsl/keywords/assertion_keywords.py,sha256=WOCGP7WX2wZ6mQPDGmi38LWdG2NaThHoNU54xc8VpxI,23027
60
+ pytest_dsl/keywords/global_keywords.py,sha256=4yw5yeXoGf_4W26F39EA2Pp-mH9GiKGy2jKgFO9a_wM,2509
61
+ pytest_dsl/keywords/http_keywords.py,sha256=DY1SvUgOziN6Ga-QgE0q4XFd2qGGwvbv1B_k2gTdPLw,25554
62
+ pytest_dsl/keywords/system_keywords.py,sha256=n_jRrMvSv2v6Pm_amokfyLNVOLYP7CFWbBE3_dlO7h4,11299
63
+ pytest_dsl-0.6.0.dist-info/licenses/LICENSE,sha256=Rguy8cb9sYhK6cmrBdXvwh94rKVDh2tVZEWptsHIsVM,1071
64
+ pytest_dsl-0.6.0.dist-info/METADATA,sha256=QqlgIA4RcClMshOutxeRS5gFN-WRNx20dIqDc7eKzqs,20678
65
+ pytest_dsl-0.6.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
66
+ pytest_dsl-0.6.0.dist-info/entry_points.txt,sha256=qqxFwSHQtjoae8_WWiO6w8y0N9nC4H8eFRvOnr_OipE,152
67
+ pytest_dsl-0.6.0.dist-info/top_level.txt,sha256=4CrSx4uNqxj7NvK6k1y2JZrSrJSzi-UvPZdqpUhumWM,11
68
+ pytest_dsl-0.6.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,68 +0,0 @@
1
- pytest_dsl/__init__.py,sha256=FzwXGvmuvMhRBKxvCdh1h-yJ2wUOnDxcTbU4Nt5fHn8,301
2
- pytest_dsl/cli.py,sha256=iMGfI2VuBI-ZAZrGfxVcBVtx9P_SMORuwbeMMOnDGXA,4774
3
- pytest_dsl/conftest_adapter.py,sha256=cevEb0oEZKTZfUrGe1-CmkFByxKhUtjuurBJP7kpLc0,149
4
- pytest_dsl/main_adapter.py,sha256=pUIPN_EzY3JCDlYK7yF_OeLDVqni8vtG15G7gVzPJXg,181
5
- pytest_dsl/parsetab.py,sha256=n_-2YnNszS-nq26HI8YbEBhvpNq7n_-092iXlsz34wA,8536
6
- pytest_dsl/plugin.py,sha256=MEQcdK0xdxwxCxPEDLNHX_kGF9Jc7bNxlNi4mx588DU,1190
7
- pytest_dsl/core/__init__.py,sha256=ersUoxIWSrisxs9GX_STlH4XAbjNxAWUQB0NboaC5zI,322
8
- pytest_dsl/core/auth_provider.py,sha256=IZfXXrr4Uuc8QHwRPvhHSzNa2fwrqhjYts1xh78D39Q,14861
9
- pytest_dsl/core/auto_decorator.py,sha256=uEW1t60E_saDLY5MwR2sGTK8IAtCZKruEPq-fRTR5pE,5934
10
- pytest_dsl/core/auto_directory.py,sha256=UF3Xpv4vtwvw0atS1NyChnL2XrnzwLST4H2jwlFip1E,2617
11
- pytest_dsl/core/context.py,sha256=fXpVQon666Lz_PCexjkWMBBr-Xcd1SkDMp2vHar6eIs,664
12
- pytest_dsl/core/custom_keyword_manager.py,sha256=QY-wXvzON2kkFwojBSXqWcQpo_aKixKhG-rsacV8gzE,7955
13
- pytest_dsl/core/dsl_executor.py,sha256=fd-awPL1j1RCZ00fD3AeSwFcHNZzVx_dQe5IIvNe6rE,24127
14
- pytest_dsl/core/dsl_executor_utils.py,sha256=cFoR2p3qQ2pb-UhkoefleK-zbuFqf0aBLh2Rlp8Ebs4,2180
15
- pytest_dsl/core/global_context.py,sha256=NcEcS2V61MT70tgAsGsFWQq0P3mKjtHQr1rgT3yTcyY,3535
16
- pytest_dsl/core/http_client.py,sha256=1AHqtM_fkXf8JrM0ljMsJwUkyt-ysjR16NoyCckHfGc,15810
17
- pytest_dsl/core/http_request.py,sha256=yjcoCN0E49lm44WAO3H73E6Zm-5FuEm1swAIt6E3FFo,55404
18
- pytest_dsl/core/keyword_manager.py,sha256=FtPsXlI7PxvVQMJfDN_nQYvRhkag5twvaHXjELQsCEo,4068
19
- pytest_dsl/core/lexer.py,sha256=nrpprs_a0-x5xQuJ9wo3gz8s03UJzYfri_WXKhTSvmw,3559
20
- pytest_dsl/core/parser.py,sha256=vvdsFc8vi-msa6lM9Rr5eTjJAUJNjQINLnB15AhTJ5E,10039
21
- pytest_dsl/core/parsetab.py,sha256=LSwz0uMGWmmylfrx7daID1TPFog-PhTyWlnSqM1jAXg,24049
22
- pytest_dsl/core/plugin_discovery.py,sha256=jqTX2UzQMCjy6lQV5h2HX63YAdkm25dyfxrLfFp6Wag,6744
23
- pytest_dsl/core/utils.py,sha256=INyuWAX_yhgU9JwSUxVjoB1iI1J6Gy4cVEXZsjJTAOg,4765
24
- pytest_dsl/core/variable_utils.py,sha256=6uY-SWtGMyVvpFb8Sw-5u8oPzNnPQKl0pt9-8mBpwac,9167
25
- pytest_dsl/core/yaml_loader.py,sha256=PFylLutIAutoSod7P_xfA13ZlqVYgTL8-te32Cg-Df4,2065
26
- pytest_dsl/core/yaml_vars.py,sha256=4Z0q9_ergpDjMrNUS0qU5oHrPPLYOL91bWoNxCioSLw,2551
27
- pytest_dsl/docs/custom_keywords.md,sha256=03dA_GeHxoLixA8Sqch14bhTbxXQCSfz9Kvged2fMCo,4381
28
- pytest_dsl/examples/__init__.py,sha256=FKkyLFOjxfC6XnJlW7iK_BUIX9dTIpXgoYN1pfs91ss,84
29
- pytest_dsl/examples/test_assert.py,sha256=zJ9bflsbyyl7v5AKdLHYTVPI4pe8QiQoeym-ULAs0tk,343
30
- pytest_dsl/examples/test_custom_keyword.py,sha256=4R8DPmlzRB9Aw_YPUWezxZSNG5eHb6y81tKPGgFsGNM,221
31
- pytest_dsl/examples/test_http.py,sha256=bjOV5YUsi_2Sb2H8y8e4ClF0kYTuWbRkXY-nYyVX4Tc,666
32
- pytest_dsl/examples/test_quickstart.py,sha256=LfEJ8UM7wDm6X-iZWA5Y70W3KAni-48aDe7aKX_DsyE,322
33
- pytest_dsl/examples/assert/assertion_example.auto,sha256=k30-BnY3PqDkzqE5-m6H-vQmL21ASm98xqi1qfzET8w,1606
34
- pytest_dsl/examples/assert/boolean_test.auto,sha256=FUhCphz68_P-QhJUrKz6w4hBrEyKg4FKwcZ91XMCltE,1366
35
- pytest_dsl/examples/assert/expression_test.auto,sha256=LoiHhjs2vQQqlVp84RLMsyUGpjLXe4M1WxFWc0dLYNs,1947
36
- pytest_dsl/examples/custom/test_advanced_keywords.auto,sha256=nMhPjqv-LISUsBKSt_wTJFAsugheekQpWTjXil1sOD4,1222
37
- pytest_dsl/examples/custom/test_custom_keywords.auto,sha256=8zivEkvLGSd0zROg8PA0Fy7cJFdEEcaHrZbB9ceMSbc,1143
38
- pytest_dsl/examples/custom/test_default_values.auto,sha256=9tWCZhjjrAdPHTLUyG5IoTXtlckRU4IXbXAb-kCsKwU,1365
39
- pytest_dsl/examples/http/__init__.py,sha256=TCV9NzLmBbPDwNpLQs4_s_LlX9T47ApQ5UAr0gHm0bE,40
40
- pytest_dsl/examples/http/builtin_auth_test.auto,sha256=qZYpmxTBW018E5YQ4c8bbnoByEA3Y7BzpPfLJtDwMKQ,2374
41
- pytest_dsl/examples/http/file_reference_test.auto,sha256=AVre1-8rozxiA22FZwVF88jnFPdwqKUSDFynNrU9RX8,3871
42
- pytest_dsl/examples/http/http_advanced.auto,sha256=MwItvtIb81subXLjFsWMQURyohGlyXlFxITpTVLc-PM,2596
43
- pytest_dsl/examples/http/http_example.auto,sha256=YyQUvqyFFUtpBJRIcwv4Ni2Y7akhO7EDD5eLG9jDXkc,4989
44
- pytest_dsl/examples/http/http_length_test.auto,sha256=QXU1I1uTYbo3U52IIdoVkl27zdCN5iu3ig_b0gvXQB0,1973
45
- pytest_dsl/examples/http/http_retry_assertions.auto,sha256=AVqzZ_dzpBquwK6INQuuQopDe_50MyZWghmAKeHkzi0,3333
46
- pytest_dsl/examples/http/http_retry_assertions_enhanced.auto,sha256=QLlGjgY9b3FNYdUUZdyogxbpQQRLmy6IW7QaPK7Pys0,3184
47
- pytest_dsl/examples/http/http_with_yaml.auto,sha256=YEynzdCu8FIQN83qMMoEoph41WEkmomHCzUVCtIhckM,1943
48
- pytest_dsl/examples/http/new_retry_test.auto,sha256=XBTD3NnyVnKr23FVy6xa_5RJq76k8pUR3rFwZe30RRI,664
49
- pytest_dsl/examples/http/retry_assertions_only.auto,sha256=l2MNtJVhJ4vt3jsue1QsoyEAZrNcwyeINmHDfSEOgyk,1867
50
- pytest_dsl/examples/http/retry_config_only.auto,sha256=6zof7HvFdBG6SEZ_ZnHygsuu9hpRpFEj-z1uPwaCSSc,1479
51
- pytest_dsl/examples/http/retry_debug.auto,sha256=wHIGtkCG8p7x4KP1A1nuz6usroU1Pwfep5wkIffgEQo,854
52
- pytest_dsl/examples/http/retry_with_fix.auto,sha256=BU8HeFtY8xor9o9XV_h-yx45_ZP0iAS-Ec12FE_7fNA,649
53
- pytest_dsl/examples/http/simple_retry.auto,sha256=Y7S8sR8VRjdk-iVJxcOD0Fb2tt_RO00BmA9eat3L0ks,569
54
- pytest_dsl/examples/http/vars.yaml,sha256=GO0x6kpaUYk90TSOxtXh_3RYcacw8-ogBv5nG72Lr9Y,1186
55
- pytest_dsl/examples/quickstart/api_basics.auto,sha256=rJP7xsMcV5N5YBAj9KQceJja2BG1mB7JSXqTv5m9OzY,1545
56
- pytest_dsl/examples/quickstart/assertions.auto,sha256=saDuaxoV-UBmQqXPNdRfmWKS2ALUaKrntabJUV2yLAo,860
57
- pytest_dsl/examples/quickstart/loops.auto,sha256=2UPuNhvErCoPis-nDStSLj5EY-lo1FKW_5YhqyYux_Q,518
58
- pytest_dsl/keywords/__init__.py,sha256=5aiyPU_t1UiB2MEZ6M9ffOKnV1mFT_2YHxnZvyWaBNI,372
59
- pytest_dsl/keywords/assertion_keywords.py,sha256=H0vNCvfG3h8R3ST6C5sVTEH8OTWj3x94cAzqSNBBRLI,22827
60
- pytest_dsl/keywords/global_keywords.py,sha256=RZcJ9ksfXZaRvds4247LFXu-8a0LFqTvVaD4n98GUrk,1410
61
- pytest_dsl/keywords/http_keywords.py,sha256=Dxz_ebtGoy0D4Almn5LtBD9RSZnkeoHhygoGNcBSkOw,24810
62
- pytest_dsl/keywords/system_keywords.py,sha256=n_jRrMvSv2v6Pm_amokfyLNVOLYP7CFWbBE3_dlO7h4,11299
63
- pytest_dsl-0.5.0.dist-info/licenses/LICENSE,sha256=Rguy8cb9sYhK6cmrBdXvwh94rKVDh2tVZEWptsHIsVM,1071
64
- pytest_dsl-0.5.0.dist-info/METADATA,sha256=jhvveN2EgoKR5TvJmmR7ONGQXyFceopAea13ZPhO8xQ,16405
65
- pytest_dsl-0.5.0.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
66
- pytest_dsl-0.5.0.dist-info/entry_points.txt,sha256=qqxFwSHQtjoae8_WWiO6w8y0N9nC4H8eFRvOnr_OipE,152
67
- pytest_dsl-0.5.0.dist-info/top_level.txt,sha256=4CrSx4uNqxj7NvK6k1y2JZrSrJSzi-UvPZdqpUhumWM,11
68
- pytest_dsl-0.5.0.dist-info/RECORD,,