def test_get_format(self): # Test with an empty Clipboard instance. c = Clipboard() self.assertRaises(ValueError, c.get_format, format_unicode) self.assertRaises(ValueError, c.get_format, format_text) self.assertRaises(ValueError, c.get_format, format_hdrop) # Test with one format. text1 = u"unicode text" c = Clipboard(contents={format_unicode: text1}) self.assertEqual(c.get_format(format_unicode), text1) self.assertRaises(ValueError, c.get_format, format_text) self.assertRaises(ValueError, c.get_format, format_hdrop) # Test with two formats. text2 = b"text" c = Clipboard(contents={format_unicode: text1, format_text: text2}) self.assertEqual(c.get_format(format_unicode), text1) self.assertEqual(c.get_format(format_text), text2) self.assertRaises(ValueError, c.get_format, format_hdrop) # Test with format_hdrop. with NamedTemporaryFile() as f: c = Clipboard(contents={format_hdrop: f.name}) self.assertRaises(ValueError, c.get_format, format_unicode) self.assertRaises(ValueError, c.get_format, format_text) self.assertEqual(c.get_format(format_hdrop), (f.name,))
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_copy_from_system(self): text = "testing" Clipboard.set_system_text(text) c = Clipboard() # Test the method with clear=False (default). c.copy_from_system(clear=False) self.assertEqual(c.text, text) self.assertEqual(Clipboard.get_system_text(), text) # Test again with clear=True. c = Clipboard() c.copy_from_system(clear=True) self.assertEqual(c.text, text) self.assertEqual(Clipboard.get_system_text(), "") # Test formats=format_unicode. # Set the system clipboard before testing. text1 = u"unicode text" c1 = Clipboard(contents={format_unicode: text1}) c1.copy_to_system() c2 = Clipboard() c2.copy_from_system(formats=format_unicode) self.assertTrue(c2.has_format(format_unicode)) self.assertEqual(c2.get_format(format_unicode), text1) # Test formats=format_text. # Set the system clipboard before testing. text2 = b"text" c1 = Clipboard(contents={format_text: text2}) c1.copy_to_system() c2 = Clipboard() c2.copy_from_system(formats=format_text) self.assertTrue(c2.has_format(format_text)) self.assertEqual(c2.get_format(format_text), text2) # Test formats=(format_unicode, format_text). # Set the system clipboard before testing. Use the same string for # both formats so the test will work on all platforms. c1 = Clipboard(contents={ format_text: b"text", format_unicode: u"text" }) c1.copy_to_system() c2 = Clipboard() c2.copy_from_system(formats=(format_unicode, format_text)) self.assertTrue(c2.has_format(format_unicode)) self.assertEqual(c2.get_format(format_unicode), u"text") self.assertTrue(c2.has_format(format_text)) self.assertEqual(c2.get_format(format_text), b"text")
def test_get_format(self): # Test with an empty Clipboard instance. c = Clipboard() self.assertRaises(ValueError, c.get_format, format_unicode) self.assertRaises(ValueError, c.get_format, format_text) # Test with one format. text1 = u"unicode text" c = Clipboard(contents={format_unicode: text1}) self.assertEqual(c.get_format(format_unicode), text1) self.assertRaises(ValueError, c.get_format, format_text) # Test with two formats. text2 = b"text" c = Clipboard(contents={format_unicode: text1, format_text: text2}) self.assertEqual(c.get_format(format_unicode), text1) self.assertEqual(c.get_format(format_text), text2)
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")