Skip to content

Conversation

@Stranger6667
Copy link
Contributor

Hey @aaltat

These are my quick experiments on how the integration could look with Schemathesis v4, along with a couple of ideas for next steps:

  • Extending Options with more config options that could be directly passed to schema.config.update and other sub-configs
  • Generating positive / negative tests by passing GenerationMode to as_strategy
  • I am not sure about the naming for test cases, as Schemathesis usually generates a lot of examples, and, for example, path_parameters may contain unprintable characters, or characters that will likely break the terminal.

Even though I don't have experience with Robot, I'll try to educate myself about best practices and workflows (and I'll be grateful if you could share some tips), so I can be more helpful here.

I think about this PR as a starting point for discussion

@aaltat
Copy link
Owner

aaltat commented Jun 7, 2025

These are my quick experiments on how the integration could look with Schemathesis v4

Thank you for the help, it looks better with v4.

* Extending `Options` with more config options that could be directly passed to `schema.config.update` and other sub-configs

I have had this in my mind, but did not have time to look at this direction yet. I was trying to get basic building blogs in place and working. I was thinking to look at authentication direction next.

* Generating positive / negative tests by passing `GenerationMode` to `as_strategy`

I have been thinking about the same, how to generate also negative test, but have not looked yet in that direction,

* I am not sure about the naming for test cases, as Schemathesis usually generates a lot of examples, and, for example, `path_parameters` may contain unprintable characters, or characters that will likely break the terminal.

I was also thinking what would be good test name. I had an idea that it would be good to see from test name what API this test is testing and how it is being tested. But I did not think about path unprintable characters, perhaps it would be good log that information out in the output file.

Even though I don't have experience with Robot, I'll try to educate myself about best practices and workflows (and I'll be grateful if you could share some tips), so I can be more helpful here.

No problem, but where to start and in a way which does not overwhelm you with the information. There is the user guide which has everything and that it is best and bad point (that would be too heavy as a starters.) There is community driven Guides which has documentation organized in different way and has many things which are not covered in user guide.

If you are VSCode or PyCharm user, then https://robotcode.io/ is the recommended plugin for those IDE.

Because this is building a library (equivalent in Pytest land would be plugin, or perhaps an fixture), then looking at the user guide library documentation could be helpful. I was thinking to use Dynamic library API, with help of PythonLibCore, because it helps keeping the code modular and if there need to create used based extension on top of this project/library, it offers nice API for it.

There is beginner’s guide to Robot Framework which summaries basic features of Robot Framework pretty good in short form.

But giving a good advice is hard, because there is so much information available and for different purposes. I guess the checking out the beginner’s guide and glimpsing at the library documentation from user guide is a good start. Lets discuss where to know from there.

I think about this PR as a starting point for discussion

I feel the same and thank you again from your help.

@aaltat
Copy link
Owner

aaltat commented Jun 14, 2025

I will merge this and fix the test on main

@aaltat aaltat merged commit 8f39423 into aaltat:main Jun 14, 2025
0 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants