(self, method: Callable[..., Any])
| 106 | return methods |
| 107 | |
| 108 | def extract_contracts(self, method: Callable[..., Any]) -> list[Contract]: |
| 109 | contracts: list[Contract] = [] |
| 110 | assert method.__doc__ is not None |
| 111 | for line_ in method.__doc__.split("\n"): |
| 112 | line = line_.strip() |
| 113 | |
| 114 | if line.startswith("@"): |
| 115 | m = re.match(r"@(\w+)\s*(.*)", line) |
| 116 | if m is None: |
| 117 | continue |
| 118 | name, args = m.groups() |
| 119 | args = re.split(r"\s+", args) |
| 120 | |
| 121 | contracts.append(self.contracts[name](method, *args)) |
| 122 | |
| 123 | return contracts |
| 124 | |
| 125 | def from_spider(self, spider: Spider, results: TestResult) -> list[Request | None]: |
| 126 | requests: list[Request | None] = [] |
no outgoing calls