Bird
Raised Fist0
PyTesttesting~5 mins

Checking identity (is, is not) in PyTest - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the is operator check in Python?
The is operator checks if two variables point to the exact same object in memory, not just if they have the same value.
Click to reveal answer
beginner
How is is not different from != in Python?
is not checks if two variables are not the same object (different identity), while != checks if their values are different.
Click to reveal answer
beginner
In pytest, how do you assert that two variables are the same object?
Use assert a is b to check that a and b refer to the same object in memory.
Click to reveal answer
intermediate
Why might is be preferred over == in some tests?
Because is confirms the exact object identity, which is important when you want to ensure no copies or different instances are involved.
Click to reveal answer
beginner
What will this pytest assertion check?
assert a is not b
It checks that a and b are not the same object in memory. They can have the same value but must be different objects.
Click to reveal answer
What does assert a is b verify in pytest?
AThat a and b are the same object
BThat a and b are different objects
CThat a and b have the same value
DThat a and b are both None
Which operator checks if two variables do NOT refer to the same object?
Ais
Bis not
C!=
D==
If a == b is True but a is b is False, what does it mean?
Aa and b are the same object
Ba and b have different values
Ca and b have the same value but are different objects
Da or b is None
Which pytest assertion checks that two variables are NOT the same object?
Aassert a is not b
Bassert a != b
Cassert a == b
Dassert a is b
Why is using is important when testing singleton objects like None?
ABecause <code>is</code> checks value equality
BBecause <code>is</code> compares types
CBecause <code>is</code> converts objects to strings
DBecause <code>is</code> checks object identity, ensuring the singleton is used
Explain the difference between is and == in Python testing.
Think about whether you want to check if two things are exactly the same object or just look the same.
You got /4 concepts.
    Describe how to write a pytest assertion to verify two variables are not the same object.
    Focus on the keyword that means 'not the same object'.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the is operator check in Python when used in pytest assertions?
      easy
      A. If two variables have the same value but different objects
      B. If two variables point to the exact same object in memory
      C. If two variables are equal using the == operator
      D. If two variables are both integers

      Solution

      1. Step 1: Understand the is operator meaning

        The is operator checks if two variables refer to the same object in memory, not just equal values.
      2. Step 2: Differentiate from ==

        The == operator checks if values are equal, but is checks identity (same object).
      3. Final Answer:

        If two variables point to the exact same object in memory -> Option B
      4. Quick Check:

        is checks identity [OK]
      Hint: Remember: is means same object, not just equal value [OK]
      Common Mistakes:
      • Confusing is with ==
      • Thinking is checks value equality
      • Using is for comparing numbers or strings incorrectly
      2. Which of the following is the correct syntax to assert two variables a and b are not the same object in pytest?
      easy
      A. assert a is not b
      B. assert a !== b
      C. assert a is! b
      D. assert a != b

      Solution

      1. Step 1: Recall correct syntax for identity negation

        The correct syntax to check two variables are not the same object is is not, so assert a is not b.
      2. Step 2: Identify invalid syntax options

        Options B and C use invalid Python syntax. assert a != b uses != which checks value inequality, not identity.
      3. Final Answer:

        assert a is not b -> Option A
      4. Quick Check:

        is not syntax correct [OK]
      Hint: Use is not to check different objects, not != [OK]
      Common Mistakes:
      • Using != instead of is not
      • Writing is! which is invalid
      • Using JavaScript style !== in Python
      3. Given the code:
      obj1 = None
      obj2 = None
      
      assert obj1 is obj2

      What will happen when this pytest assertion runs?
      medium
      A. SyntaxError due to wrong assertion
      B. The assertion fails because None is not an object
      C. The assertion passes because both are the same None object
      D. The assertion fails because obj1 and obj2 are different None instances

      Solution

      1. Step 1: Understand None is a singleton

        In Python, None is a singleton object, so all variables assigned None point to the same object.
      2. Step 2: Check identity assertion

        The assertion assert obj1 is obj2 checks if both variables point to the same object, which they do.
      3. Final Answer:

        The assertion passes because both are the same None object -> Option C
      4. Quick Check:

        None is None always True [OK]
      Hint: Remember: None is always the same object in Python [OK]
      Common Mistakes:
      • Thinking None creates new objects each time
      • Confusing identity with equality
      • Expecting assertion failure for None identity
      4. Identify the error in this pytest assertion:
      list1 = [1, 2, 3]
      list2 = [1, 2, 3]
      assert list1 is list2
      medium
      A. RuntimeError because lists cannot be compared with is
      B. No error; assertion passes because lists have same values
      C. SyntaxError due to wrong use of is
      D. Assertion fails because lists are different objects despite same values

      Solution

      1. Step 1: Understand list object identity

        Two lists with same values are different objects in memory unless explicitly assigned.
      2. Step 2: Check assertion behavior

        The assertion assert list1 is list2 fails because is checks identity, not equality.
      3. Final Answer:

        Assertion fails because lists are different objects despite same values -> Option D
      4. Quick Check:

        Same values ≠ same object [OK]
      Hint: Use == for value equality, is for identity [OK]
      Common Mistakes:
      • Expecting is to check value equality
      • Confusing object identity with content equality
      • Assuming lists with same content share identity
      5. You want to write a pytest test to confirm that a function returns the exact same singleton object config every time it is called. Which assertion is best?
      hard
      A. assert get_config() is config
      B. assert get_config() == config
      C. assert get_config() is not config
      D. assert get_config() != config

      Solution

      1. Step 1: Understand singleton identity check

        To confirm the function returns the exact same object, use is to check identity.
      2. Step 2: Evaluate options

        assert get_config() == config checks value equality, which may be true for different objects. assert get_config() is config correctly asserts identity. Options C and D check for difference, which is not desired.
      3. Final Answer:

        assert get_config() is config -> Option A
      4. Quick Check:

        is for singleton identity [OK]
      Hint: Use is to confirm same singleton object returned [OK]
      Common Mistakes:
      • Using == which checks value, not identity
      • Using is not by mistake
      • Not understanding singleton pattern in tests
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard