50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
"""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())
|