class TestQFlagsKey: """Tests for qutebrowser.utils.debug.qflags_key. https://github.com/qutebrowser/qutebrowser/issues/42 """ fixme = pytest.mark.xfail(reason="See issue #42", raises=AssertionError) @pytest.mark.parametrize('base, value, klass, expected', [ (Qt, Qt.AlignTop, None, 'AlignTop'), pytest.param(Qt, Qt.AlignLeft | Qt.AlignTop, None, 'AlignLeft|AlignTop', marks=fixme), (Qt, Qt.AlignCenter, None, 'AlignHCenter|AlignVCenter'), pytest.param(Qt, 0x0021, Qt.Alignment, 'AlignLeft|AlignTop', marks=fixme), (Qt, 0x1100, Qt.Alignment, '0x0100|0x1000'), (Qt, Qt.DockWidgetAreas(0), Qt.DockWidgetArea, 'NoDockWidgetArea'), (Qt, Qt.DockWidgetAreas(0), None, '0x0000'), ]) def test_qflags_key(self, base, value, klass, expected): flags = debug.qflags_key(base, value, klass=klass) assert flags == expected def test_add_base(self): """Test with add_base=True.""" flags = debug.qflags_key(Qt, Qt.AlignTop, add_base=True) assert flags == 'Qt.AlignTop' def test_int_noklass(self): """Test passing an int without explicit klass given.""" with pytest.raises(TypeError): debug.qflags_key(Qt, 42)
class TestQFlagsKey: """Tests for qutebrowser.utils.debug.qflags_key. https://github.com/qutebrowser/qutebrowser/issues/42 """ fixme = pytest.mark.xfail(reason="See issue #42", raises=AssertionError) @pytest.mark.parametrize('base, value, klass, expected', [ (Qt, Qt.AlignTop, None, 'AlignTop'), pytest.param(Qt, Qt.AlignLeft | Qt.AlignTop, None, 'AlignLeft|AlignTop', marks=fixme), (Qt, Qt.AlignCenter, None, 'AlignHCenter|AlignVCenter'), pytest.param( Qt, 0x0021, Qt.Alignment, 'AlignLeft|AlignTop', marks=fixme), (Qt, 0x1100, Qt.Alignment, '0x0100|0x1000'), (Qt, Qt.DockWidgetAreas(0), Qt.DockWidgetArea, 'NoDockWidgetArea'), (Qt, Qt.DockWidgetAreas(0), None, '0x0000'), ]) def test_qflags_key(self, base, value, klass, expected): flags = debug.qflags_key(base, value, klass=klass) assert flags == expected def test_find_flags(self): """Test a weird TypeError we get from PyQt. In exactly this constellation (happening via the "Searching with --reverse" BDD test), calling QMetaEnum::valueToKey without wrapping the flags in int() causes a TypeError. No idea what's happening here exactly... """ qwebpage = pytest.importorskip("PyQt5.QtWebKitWidgets").QWebPage flags = qwebpage.FindWrapsAroundDocument flags |= qwebpage.FindBackward flags &= ~qwebpage.FindBackward flags &= ~qwebpage.FindWrapsAroundDocument debug.qflags_key(qwebpage, flags, klass=qwebpage.FindFlag) def test_add_base(self): """Test with add_base=True.""" flags = debug.qflags_key(Qt, Qt.AlignTop, add_base=True) assert flags == 'Qt.AlignTop' def test_int_noklass(self): """Test passing an int without explicit klass given.""" with pytest.raises(TypeError): debug.qflags_key(Qt, 42)