What does the in keyword check in a pytest assertion?
The in keyword checks if a value or element exists inside a container like a list, string, or dictionary keys.
Click to reveal answer
beginner
How do you assert that an item is NOT in a list using pytest?
Use assert item not in list to check the item is absent from the list.
Click to reveal answer
beginner
Example: assert 'apple' in fruits What happens if 'apple' is not in fruits?
The test will fail and pytest will show an AssertionError because the condition is false.
Click to reveal answer
intermediate
Why is checking membership useful in software testing?
It helps verify if expected data or elements appear in outputs, lists, or responses, ensuring correct program behavior.
Click to reveal answer
beginner
What types of containers can you check membership in with in and not in?
You can check membership in lists, tuples, sets, strings, and dictionary keys.
Click to reveal answer
What does assert 'cat' in animals check?
A'cat' is a variable
B'cat' is not in animals
Canimals is empty
D'cat' is an element in the animals container
✗ Incorrect
The assertion checks if 'cat' exists inside the animals container.
How do you assert that 'dog' is NOT in the list pets?
Aassert 'dog' in pets
Bassert 'dog' not in pets
Cassert pets not in 'dog'
Dassert not pets in 'dog'
✗ Incorrect
Use 'assert 'dog' not in pets' to check absence.
Which container membership does in NOT check?
AInteger
BString
CList
DDictionary keys
✗ Incorrect
Membership checks require containers; integers are not containers.
If assert 'x' in 'xyz' fails, what does it mean?
A'x' is in 'xyz'
BSyntax error
C'x' is not in 'xyz'
DTest passed
✗ Incorrect
If the assertion fails, 'x' is not found in 'xyz'.
What error does pytest show if a membership assertion fails?
AAssertionError
BTypeError
CValueError
DIndexError
✗ Incorrect
Failed assertions raise AssertionError in pytest.
Explain how to use in and not in in pytest assertions with examples.
Think about checking if an item exists or does not exist in a list or string.
You got /4 concepts.
Why is checking membership important in software testing? Give a simple scenario.
Consider how you confirm something is included or excluded in a result.
You got /3 concepts.
Practice
(1/5)
1. Which of the following statements correctly checks if the string 'apple' is in the list fruits = ['apple', 'banana', 'cherry'] using pytest assertions?
easy
A. assert fruits in 'apple'
B. assert 'apple' not in fruits
C. assert 'apple' in fruits
D. assert 'apple' == fruits
Solution
Step 1: Understand the membership check
The in keyword checks if an item exists inside a collection like a list.
Step 2: Apply the correct assertion
To confirm 'apple' is in the list, use assert 'apple' in fruits. This passes if 'apple' is found.
Final Answer:
assert 'apple' in fruits -> Option C
Quick Check:
Use in to check presence [OK]
Hint: Use 'in' to check presence, 'not in' for absence [OK]
Common Mistakes:
Using 'not in' instead of 'in' when checking presence
Reversing the order like 'fruits in apple'
Using equality instead of membership check
2. Which of the following is the correct syntax to assert that the number 5 is NOT in the list numbers = [1, 2, 3, 4] using pytest?
easy
A. assert 5 in numbers
B. assert numbers not in 5
C. assert 5 not numbers
D. assert 5 not in numbers
Solution
Step 1: Identify the correct membership operator
To check that 5 is not in the list, use not in keyword.
Step 2: Write the correct assertion syntax
The correct syntax is assert 5 not in numbers. This passes if 5 is absent.
Final Answer:
assert 5 not in numbers -> Option D
Quick Check:
Use 'not in' to check absence [OK]
Hint: Remember 'not in' checks absence, syntax: assert x not in y [OK]
Common Mistakes:
Misplacing 'not' like 'assert 5 not numbers' (SyntaxError)
Swapping operands like 'numbers not in 5' which is invalid
Using 'in' instead of 'not in' for absence check
3. What will be the result of this pytest assertion?
items = ['pen', 'pencil', 'eraser']
assert 'marker' not in items
medium
A. Test passes because 'marker' is not in the list
B. Test fails because 'marker' is in the list
C. SyntaxError due to wrong assertion
D. Test passes because 'marker' is in the list
Solution
Step 1: Check if 'marker' is in the list
The list contains 'pen', 'pencil', and 'eraser'. 'marker' is not present.
Step 2: Evaluate the assertion
The assertion checks that 'marker' is not in items, which is true, so the test passes.
Final Answer:
Test passes because 'marker' is not in the list -> Option A
Quick Check:
Not in list means assertion passes [OK]
Hint: If item absent and 'not in' used, test passes [OK]
Common Mistakes:
Assuming test fails if item is missing
Confusing 'in' and 'not in' logic
Thinking syntax error occurs with 'not in'
4. Identify the error in this pytest assertion and select the correct fix:
colors = ['red', 'green', 'blue']
assert 'yellow' in colors not
medium
A. Use 'assert not 'yellow' in colors' instead
B. SyntaxError: 'not' should come before 'in' as 'not in'
C. Replace 'in' with 'not in' and remove 'not' at the end
D. No error, assertion is correct
Solution
Step 1: Analyze the assertion syntax
The expression ends with 'colors not' which is invalid syntax in Python.
Step 2: Correct the membership operator usage
The correct operator for checking absence is 'not in', written together, not separated.
Final Answer:
SyntaxError: 'not' should come before 'in' as 'not in' -> Option B
Quick Check:
Use 'not in' together, no trailing 'not' [OK]
Hint: Write 'not in' together, never split or reorder [OK]
Common Mistakes:
Writing 'in colors not' instead of 'not in colors'
Using 'assert colors not in 'yellow'' which reverses order
Omitting 'not' or placing it incorrectly
5. You want to write a pytest test to confirm that none of the forbidden words ['spam', 'scam', 'fraud'] appear in the user input string text. Which assertion correctly checks this?
hard
A. assert all(word not in text for word in ['spam', 'scam', 'fraud'])
B. assert any(word in text for word in ['spam', 'scam', 'fraud'])
C. assert 'spam' not in text and 'scam' not in text or 'fraud' not in text
D. assert 'spam' in text or 'scam' in text or 'fraud' in text
Solution
Step 1: Understand the requirement
We want to ensure none of the forbidden words appear in the text, so all must be absent.
Step 2: Use a generator with 'all' and 'not in'
The expression all(word not in text for word in forbidden_words) returns True only if every word is not in text.
Step 3: Evaluate other options
assert any(word in text for word in ['spam', 'scam', 'fraud']) checks if any forbidden word is present (opposite). assert 'spam' not in text and 'scam' not in text or 'fraud' not in text has incorrect logic mixing 'and' and 'or'. assert 'spam' in text or 'scam' in text or 'fraud' in text checks presence, not absence.
Final Answer:
assert all(word not in text for word in ['spam', 'scam', 'fraud']) -> Option A
Quick Check:
Use all() with 'not in' for absence of all items [OK]
Hint: Use all() with 'not in' to confirm all items absent [OK]
Common Mistakes:
Using any() instead of all() for absence check
Mixing 'and' and 'or' incorrectly in conditions
Checking only one forbidden word instead of all
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.