From: Max Bernstein Date: Fri, 18 Dec 2020 00:30:29 +0000 (-0800) Subject: bpo-42199: Fix bytecode_helper assertNotInBytecode (#23031) X-Git-Tag: v3.10.0a4~138 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6e799be0a18d0bb5bbbdc77cd3c30a229d31dfb4;p=thirdparty%2FPython%2Fcpython.git bpo-42199: Fix bytecode_helper assertNotInBytecode (#23031) * bpo-42199: Fix bytecode_helper assertNotInBytecode Add tests. * 📜🤖 Added by blurb_it. Co-authored-by: Dino Viehland Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> --- diff --git a/Lib/test/support/bytecode_helper.py b/Lib/test/support/bytecode_helper.py index 348e277c1658..471d4a68f915 100644 --- a/Lib/test/support/bytecode_helper.py +++ b/Lib/test/support/bytecode_helper.py @@ -35,7 +35,8 @@ class BytecodeTestCase(unittest.TestCase): disassembly = self.get_disassembly_as_string(x) if argval is _UNSPECIFIED: msg = '%s occurs in bytecode:\n%s' % (opname, disassembly) + self.fail(msg) elif instr.argval == argval: msg = '(%s,%r) occurs in bytecode:\n%s' msg = msg % (opname, argval, disassembly) - self.fail(msg) + self.fail(msg) diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py index 786744923eb4..d5d815dc5dc5 100644 --- a/Lib/test/test_dis.py +++ b/Lib/test/test_dis.py @@ -1212,5 +1212,24 @@ class BytecodeTests(unittest.TestCase): b = dis.Bytecode.from_traceback(tb) self.assertEqual(b.dis(), dis_traceback) + +class TestBytecodeTestCase(BytecodeTestCase): + def test_assert_not_in_with_op_not_in_bytecode(self): + code = compile("a = 1", "", "exec") + self.assertInBytecode(code, "LOAD_CONST", 1) + self.assertNotInBytecode(code, "LOAD_NAME") + self.assertNotInBytecode(code, "LOAD_NAME", "a") + + def test_assert_not_in_with_arg_not_in_bytecode(self): + code = compile("a = 1", "", "exec") + self.assertInBytecode(code, "LOAD_CONST") + self.assertInBytecode(code, "LOAD_CONST", 1) + self.assertNotInBytecode(code, "LOAD_CONST", 2) + + def test_assert_not_in_with_arg_in_bytecode(self): + code = compile("a = 1", "", "exec") + with self.assertRaises(AssertionError): + self.assertNotInBytecode(code, "LOAD_CONST", 1) + if __name__ == "__main__": unittest.main() diff --git a/Misc/NEWS.d/next/Tests/2020-10-29-21-26-46.bpo-42199.KksGCV.rst b/Misc/NEWS.d/next/Tests/2020-10-29-21-26-46.bpo-42199.KksGCV.rst new file mode 100644 index 000000000000..4426f336368b --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-10-29-21-26-46.bpo-42199.KksGCV.rst @@ -0,0 +1 @@ +Fix bytecode helper assertNotInBytecode. \ No newline at end of file