1# -*- coding: utf-8 -*- 2"""QGIS Unit tests for QgsScaleBarRendererRegistry 3 4.. note:: This program is free software; you can redistribute it and/or modify 5it under the terms of the GNU General Public License as published by 6the Free Software Foundation; either version 2 of the License, or 7(at your option) any later version. 8""" 9__author__ = 'Nyall Dawson' 10__date__ = '20/03/2020' 11__copyright__ = 'Copyright 2020, The QGIS Project' 12 13import qgis # NOQA 14 15from qgis.core import (QgsScaleBarRendererRegistry, 16 QgsScaleBarRenderer) 17from qgis.testing import start_app, unittest 18 19start_app() 20 21 22class TestRenderer(QgsScaleBarRenderer): 23 24 def id(self): 25 return 'test' 26 27 def sortKey(self): 28 return 45 29 30 def visibleName(self): 31 return 'TesT' 32 33 def clone(self): 34 return TestRenderer() 35 36 37class TestQgsScaleBarRendererRegistry(unittest.TestCase): 38 39 def testRegistry(self): 40 registry = QgsScaleBarRendererRegistry() 41 self.assertTrue(registry.renderers()) 42 for f in registry.renderers(): 43 self.assertEqual(registry.renderer(f).id(), f) 44 self.assertEqual(registry.visibleName(f), registry.renderer(f).visibleName()) 45 self.assertEqual(registry.sortKey(f), registry.renderer(f).sortKey()) 46 47 self.assertIsNone(registry.renderer('bad')) 48 self.assertFalse(registry.visibleName('bad')) 49 self.assertFalse(registry.sortKey('bad')) 50 51 self.assertIn('Double Box', registry.renderers()) 52 53 registry.addRenderer(TestRenderer()) 54 self.assertIn('test', registry.renderers()) 55 self.assertTrue(isinstance(registry.renderer('test'), TestRenderer)) 56 self.assertEqual(registry.visibleName('test'), 'TesT') 57 self.assertEqual(registry.sortKey('test'), 45) 58 59 registry.removeRenderer('test') 60 61 self.assertNotIn('test', registry.renderers()) 62 self.assertIsNone(registry.renderer('test')) 63 self.assertFalse(registry.visibleName('test')) 64 65 registry.removeRenderer('test') 66 67 68if __name__ == '__main__': 69 unittest.main() 70