You're just showing your ignorance. The Nazis killed the majority of their victims as soon as they arrived in the camp. They kept 20%-30%, mostly men who could work, to be used as slaves for their military industry, and they eliminated everyone else. They developed gassing especially in order to speed up the killing and make it more economical.
It was a genocide because they tried to eliminate a specific ethnic group, for no other reason than its ethnicity.
You should go learn more about the subject, if it interests you so much.
It doesn’t interest them. People who think what Israel is doing is anything like what the Nazis did have had their brain washed clean by anti-Semitic propaganda. It’s smooth as a volleyball in there, facts don’t matter.
It's a ridiculous argument. The Nazis went through a LOT of effort and resources to gather Jews from all the corners of Europe, and even more effort into exterminating them as fast as they could, within the logistical and economic constraints of fighting a 3 front war.
There's no comparison at all to the ease with which Israel could just drop a couple of bombs on Gaza, had it decided to do so.
The only thing stopping Israel from doing that is international outrage. Israel is entirely dependent on its benefactor states like the US and, while it pushes the limits to the extreme, must at least contend with world opinion.
That's like me saying you're a murderer, but you just haven't killed anyone yet because you're afraid of going to jail. Maybe it's true, but it's a bit of a silly argument, isn't it? In western society, we judge people based on their actions.
The fact that I just spent five minutes thinking about it proves that it's not ridiculous at all. The scale is different (so far), but I’m not convinced there’s a qualitative difference.
I like the promise, and it looks nice. But I'm not sure what are the selling points.
- pytest already works with assert. Why brag about something that is already commonplace?
- It could help if your docs explained the alternative to using fixtures. I assume it would be done by re-using givens, but you could make it clearer what is the preferred way to do it, and what is gained, or lost, but doing it that way.
- Can you explain how your diff is better than the pytest diff? (I'm asking as someone who hates the pytest diff)
Thanks for the feedback, it helps me see things from a different perspective.
These are excellent questions, and you're absolutely right that they should be clear from the landing page. I'll work on fixing that.
Short answers:
1. Good point about asserts. When writing the benefits, I was targeting a broader audience (unittest users, people coming from other languages like JS), but the reality is most visitors are probably "pytest escapers" who already know pytest uses assert. I'll reorganize the selling points to focus on what actually differentiates Vedro.
2. The main philosophy is "all you need is functions and their compositions", no special decorators or dependency injection magic. But this is indeed missing from the index page. Will definitely add clear examples showing how to handle common fixture use cases with plain functions.
3. One diff example on the landing page clearly isn't enough. I'll add more comparisons. Since you hate pytest's diff output too, I'd love to hear what specifically bothers you about it, your pain points would be incredibly valuable for improving how I present Vedro's approach.
Because my hate for pytest is ardent and dear to my heart, I will try to explain.
I wrote a very simple function:
def test_whatever():
a = range(10)
b = (10 / x for x in a)
c = list(b)
When I run it with normal Python, this is the exception:
Traceback (most recent call last):
File "test_test.py", line 10, in <module>
test_whatever()
File "test_test.py", line 6, in test_whatever
c = list(b)
^^^^^^^
File "test_test.py", line 5, in <genexpr>
b = (10 / x for x in a)
~~~^~~
ZeroDivisionError: division by zero
It's compact and simple to understand. It pinpoints the exact location of the error, and I easily scan the text to find the function call-stack.
Now here's the pytest error:
___________________________________ test_whatever ___________________________________
def test_whatever():
a = range(10)
b = (10 / x for x in a)
> c = list(b)
test_test.py:6:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.0 = <range_iterator object at 0x107695e90>
> b = (10 / x for x in a)
E ZeroDivisionError: division by zero
test_test.py:5: ZeroDivisionError
It doesn't pinpoint the error, it adds code lines that might be irrelevant, and extra information I don't care about.
I will say using `--tb=short` fixes most of it, at least in this example, and sometimes it's even preferable, because it's shorter. But it still doesn't pinpoint the error like normal Python exceptions do.
Thank you for sharing this example! You've perfectly captured one of my main frustrations: pytest tries to be "helpful" by adding extra context, but ends up obscuring the actual error.
Supposedly, one people of the Sea Peoples were the Peleset, as the egyptians called them (https://en.wikipedia.org/wiki/Peleset), which are believed to be the same people as the Philistines, for which the Romans gave Palestine its name.
Another tantalizing possible connection for two other Sea Peoples groups, the "Sherden" and the "Shekelesh" sure sound pretty close to "Sardinia" and "Sicily", but I'm not sure if there's any actual evidence besides similarity.
It was a genocide because they tried to eliminate a specific ethnic group, for no other reason than its ethnicity.
You should go learn more about the subject, if it interests you so much.
reply