def test_set_format(self): # Test with one format. text1 = u"unicode text" c = Clipboard() c.set_format(format_unicode, text1) self.assertTrue(c.has_format(format_unicode)) self.assertEqual(c.get_format(format_unicode), text1) self.assertFalse(c.has_format(format_text)) self.assertRaises(ValueError, c.get_format, format_text) # Test with two formats. text2 = b"text" c.set_format(format_text, text2) self.assertTrue(c.has_format(format_unicode)) self.assertEqual(c.get_format(format_unicode), text1) self.assertTrue(c.has_format(format_text)) self.assertEqual(c.get_format(format_text), text2) # Setting a format to None removes the format's content from the # instance. c.set_format(format_text, None) self.assertFalse(c.has_format(format_text)) self.assertRaises(ValueError, c.get_format, format_text) c.set_format(format_unicode, None) self.assertFalse(c.has_format(format_unicode)) self.assertRaises(ValueError, c.get_format, format_unicode)
def test_flexible_string_types(self): # This is similar to the clipboard format conversion that Windows # performs when necessary. The Clipboard class should do this # regardless of platform/implementation. # Binary strings used with format_unicode are converted for us. c = Clipboard(contents={format_unicode: b"text"}) self.assertEqual(c.get_format(format_unicode), u"text") c = Clipboard() c.set_format(format_unicode, b"text") self.assertEqual(c.get_format(format_unicode), u"text") # Text strings used with format_text (ANSI) are converted for us. c = Clipboard(contents={format_text: u"text"}) self.assertEqual(c.get_format(format_text), b"text") c = Clipboard() c.set_format(format_text, u"text") self.assertEqual(c.get_format(format_text), b"text")