Polish the qidenticon #1793
49
src/tests/test_identicon.py
Normal file
49
src/tests/test_identicon.py
Normal file
|
@ -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())
|
Reference in New Issue
Block a user