1
1
import os
2
2
from textwrap import dedent
3
- from typing import Dict , List , Union
3
+ from typing import Dict , List , Optional , Union
4
4
5
5
from wafp .fuzzers import BaseFuzzer , FuzzerContext
6
6
from wafp .utils import NotSet
@@ -12,8 +12,12 @@ def send_report_requested(self) -> bool:
12
12
return bool (os .environ .get ("SCHEMATHESIS_REPORT" , False ))
13
13
14
14
@property
15
- def saas_token (self ) -> str :
16
- return os .environ .get ("SCHEMATHESIS_TOKEN" , "" )
15
+ def saas_token (self ) -> Optional [str ]:
16
+ return os .environ .get ("SCHEMATHESIS_TOKEN" )
17
+
18
+ @property
19
+ def api_name (self ) -> Optional [str ]:
20
+ return os .environ .get ("SCHEMATHESIS_API_NAME" )
17
21
18
22
def get_entrypoint_args (
19
23
self , context : FuzzerContext , schema : str , base_url : str , headers : Dict [str , str ], ssl_insecure : bool = False
@@ -32,13 +36,21 @@ def get_entrypoint_args(
32
36
for key , value in headers .items ():
33
37
args .extend (["-H" , f"{ key } : { value } " ])
34
38
if ssl_insecure :
35
- args .extend ([ "--request-tls-verify=false" ] )
36
- if self .send_report_requested and self . saas_token :
39
+ args .append ( "--request-tls-verify=false" )
40
+ if self .send_report_requested :
37
41
self .logger .info ("Report gonna be sent to schemathesis.io" )
38
- args .extend (["--report" , f"--schemathesis-io-token={ self .saas_token } " ])
42
+ args .append ("--report" )
43
+ if self .saas_token :
44
+ args .append (f"--schemathesis-io-token={ self .saas_token } " )
39
45
extend_entrypoint_args (context , args )
40
46
return args
41
47
48
+ def get_environment_variables (self ) -> Dict [str , str ]:
49
+ env = super ().get_environment_variables ()
50
+ if self .api_name is not None :
51
+ env ["SCHEMATHESIS_API_NAME" ] = self .api_name
52
+ return env
53
+
42
54
43
55
def extend_entrypoint_args (context : FuzzerContext , args : List [str ]) -> None :
44
56
"""Add target-specific entrypoint arguments."""
0 commit comments