-
Notifications
You must be signed in to change notification settings - Fork 103
Created faking and mocking functions #346
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
mock and fake functions
…in/pgtap into fake_and_mock_functions just pulling from github
…cements to other routines
Fake and mock functions
|
@theory Hi! Could you please let me know what you think about my PR. I'd appreciate it. |
|
Sorry, @v-maliutin, hyper busy rn, but will get to it. |
|
Not a full review, but a couple comments: AFAIK, there's no reason to modify the Instead of building a function body via |
@jnasbyupgrade thank you for your review. Rolled back changes in Unpackaged |
theory
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks super interesting, though I'm not sure they need to be procedures. I requested some change, but the big thing that's missing here is documentation. It would be super helpful for comments in the code to explain what each bit is doing and why (primary example, when it creates two mock functions without explanation). But also the new features should be documented in doc/pgtap.mmd, perhaps with a tutorial.
|
Hi, I am going to implement the following features. Please let me know if you think they are a good idea too.
|
theory
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Honestly this is a huge feature that I think should probably be its own extension, either distributed separately and depending on pgtap (perhaps a release that includes changes to tap_funky that it requires) or else a separate extension as part of the pgTAP distribution. I'm leaning toward the former, at least as you work through the process, because I'm not sure I have the capacity to take on maintaining such a huge feature I don't use. I'm happy to review code and make recommendations if you decide to distribute it as its own extension.
Seems like it, yes, but again I think this is full-featured enough that it might be better developed and distributed as its own extension. |
I am pleasantly surprised to read this. Okay, no problem, I can go with my own extension depending on pgTap. Could you please explain. When you talk about a separate extension as part of the pgTap what do you mean exactly? |
|
A project can have more than one extension. This one has three (pgtap, pgtap-core, and pgtap-schema. Each just needs its own control file, SQL files, and entry in |
|
So, what is the best solution? |
I suggest you continue developing in your own project, a separate repo. I'd be happy to review stuff there if yo find it helpful (and I'll make a whole lot fewer style comments :-)). Make a new PR for revisions to Overall this will give you a lot more freedom and control over the extension and how it works. |
Hello @theory |
They're for embedding in other extension packages. For example, semver includes
No, they were just examples, and not great ones, TBH, since they have no control files.
PGXN uses Text::Markup to render documentation as HTML; for HTH! |
|
@theory I moved all my code to my own repo.
Yes, that's how it works. Do you see any problems with that?
Did not think about C functions, but it seems I have to. Anyway, I have to handle a case when user did not provide schema. I love your suggestion to review my code. Will ask you. I have fixed most issues you shown in my repo. |
I developed some functions to make writing tests easier. There are examples in the source code. Also, I wrote an article on habr. Here it is https://habr.com/ru/companies/gnivc/articles/877314/. I know it is in Russian, but hope modern translation will help.
Anyway such functionality is in any modern language and wide known. I just bringing it in PG world.
One more thing. I am going to introduce my work and pgTap at pgConf in Moscow on March 31 2025.