diff --git a/src/tests/test_identicon.py b/src/tests/test_identicon.py new file mode 100644 index 00000000..4c6be32d --- /dev/null +++ b/src/tests/test_identicon.py @@ -0,0 +1,49 @@ +"""Tests for qidenticon""" + +import atexit +import unittest + +try: + from PyQt5 import QtGui, QtWidgets + from xvfbwrapper import Xvfb + from pybitmessage import qidenticon +except ImportError: + Xvfb = None + # raise unittest.SkipTest( + # 'Skipping graphical test, because of no PyQt or xvfbwrapper') +else: + vdisplay = Xvfb(width=1024, height=768) + vdisplay.start() + atexit.register(vdisplay.stop) + + +sample_code = 0x3fd4bf901b9d4ea1394f0fb358725b28 +sample_size = 48 + + +@unittest.skipUnless( + Xvfb, 'Skipping graphical test, because of no PyQt or xvfbwrapper') +class TestIdenticon(unittest.TestCase): + """QIdenticon implementation test case""" + + @classmethod + def setUpClass(cls): + """Instantiate QtWidgets.QApplication""" + cls.app = QtWidgets.QApplication([]) + + def test_qidenticon_samples(self): + """Generate 4 qidenticon samples and check their properties""" + icon_simple = qidenticon.render_identicon(sample_code, sample_size) + self.assertIsInstance(icon_simple, QtGui.QPixmap) + self.assertEqual(icon_simple.height(), sample_size * 3) + self.assertEqual(icon_simple.width(), sample_size * 3) + self.assertFalse(icon_simple.hasAlphaChannel()) + + # icon_sample = QtGui.QPixmap() + # icon_sample.load('../images/qidenticon.png') + # self.assertFalse( + # icon_simple.toImage(), icon_sample.toImage()) + + icon_x = qidenticon.render_identicon( + sample_code, sample_size, opacity=0) + self.assertTrue(icon_x.hasAlphaChannel())