The basic assert statement checks if something is true in your test. It helps find mistakes by stopping the test if the check fails.
To check if a function returns the expected result.
To verify that a value is equal to what you expect.
To confirm that a condition is true before continuing.
To catch errors early in simple tests.
To make sure your code behaves as planned.
Syntax
PyTest
assert expression, "optional failure message"
The expression should be something that is True or False.
If the expression is False, the test fails and shows the message if given.
Examples
Checks if 5 equals 5, which is true, so the test passes.
PyTest
assert5 == 5
Checks if 'a' is in 'apple'. If not, it shows the message.
PyTest
assert'a'in'apple', "Letter 'a' not found"
Checks if the list length is 3.
PyTest
assertlen([1, 2, 3]) == 3
Sample Program
This test script has two tests. The first checks if the sum of numbers is 6. The second checks if 'hello' becomes 'HELLO' when uppercased.
PyTest
def test_sum():
total = sum([1, 2, 3])
assert total == 6, "Sum should be 6"def test_uppercase():
word = "hello".upper()
assert word == "HELLO"# Run tests with pytest
OutputSuccess
Important Notes
Use assert to check one thing at a time for clear test results.
Write helpful messages to understand failures quickly.
pytest shows detailed info when assert fails, making debugging easier.
Summary
Assert checks if a condition is true in tests.
It helps find bugs by stopping tests when conditions fail.
Use clear messages to explain what went wrong.
Practice
(1/5)
1. What does the assert statement do in a pytest test?
easy
A. Skips the test without running it
B. Runs the test multiple times automatically
C. Prints a message to the console
D. Checks if a condition is true and stops the test if false
Solution
Step 1: Understand the purpose of assert
The assert statement checks if a condition is true during a test.
Step 2: Know the effect of assert failing
If the condition is false, the test stops and reports failure.
Final Answer:
Checks if a condition is true and stops the test if false -> Option D
Quick Check:
Assert = condition check [OK]
Hint: Assert stops test on false condition [OK]
Common Mistakes:
Thinking assert runs tests multiple times
Confusing assert with print statements
Believing assert skips tests
2. Which of the following is the correct syntax for an assert statement in pytest?
easy
A. assert(x == 5; "x should be 5")
B. assert x == 5, "x should be 5"
C. assert x = 5, "x should be 5"
D. assert x == 5 then "x should be 5"
Solution
Step 1: Review correct assert syntax
In Python, assert is followed by a condition, optionally a comma and a message string.
Step 2: Identify syntax errors in options
assert x == 5, "x should be 5" uses correct syntax: assert condition, message. Others have wrong punctuation or assignment.
Final Answer:
assert x == 5, "x should be 5" -> Option B
Quick Check:
assert condition, message [OK]
Hint: Use comma after condition for message [OK]
Common Mistakes:
Using assignment (=) instead of comparison (==)
Adding parentheses incorrectly
Using wrong keywords like 'then'
3. What will be the result of this pytest assertion?
def test_value():
x = 10
assert x < 5, "x is not less than 5"
medium
A. Test passes silently
B. Test is skipped
C. Test fails with message 'x is not less than 5'
D. SyntaxError occurs
Solution
Step 1: Evaluate the condition in assert
The condition is x < 5, but x is 10, so 10 < 5 is false.
Step 2: Understand assert failure behavior
Since condition is false, the test fails and shows the message after the comma.
Final Answer:
Test fails with message 'x is not less than 5' -> Option C
Quick Check:
False condition triggers failure [OK]
Hint: False assert condition fails test with message [OK]
Common Mistakes:
Assuming test passes when condition is false
Expecting syntax error for valid assert
Thinking test skips on failure
4. Identify the error in this pytest assertion:
def test_sum():
total = 3 + 4
assert total = 7, "Sum should be 7"
medium
A. Using assignment (=) instead of comparison (==) in assert
B. Missing parentheses around assert condition
C. Incorrect indentation of assert statement
D. Wrong message format after assert
Solution
Step 1: Check assert condition syntax
The assert condition must use comparison (==), not assignment (=).
Step 2: Identify the error in the code
Here, 'assert total = 7' uses assignment, which is invalid syntax.
Final Answer:
Using assignment (=) instead of comparison (==) in assert -> Option A
Quick Check:
Use '==' for comparison in assert [OK]
Hint: Use '==' not '=' in assert condition [OK]
Common Mistakes:
Confusing assignment with comparison
Adding unnecessary parentheses
Misplacing the error in indentation
5. You want to check if a list items contains exactly 3 elements using pytest assert. Which is the best assert statement?
hard
A. assert len(items) == 3, "List does not have 3 elements"
B. assert items == 3, "List length check failed"
C. assert items.length == 3, "Wrong length"
D. assert len(items) = 3, "Length must be 3"
Solution
Step 1: Understand how to get list length in Python
Use the built-in function len() to get the number of elements in a list.
Step 2: Check correct assert syntax for length comparison
Compare len(items) with 3 using '==', and provide a clear message after a comma.
Final Answer:
assert len(items) == 3, "List does not have 3 elements" -> Option A
Quick Check:
len(list) == number [OK]
Hint: Use len() and '==' to check list size [OK]
Common Mistakes:
Comparing list directly to number
Using JavaScript style .length property
Using assignment '=' instead of '=='
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.