emmental/tests/test_entry.py

93 lines
3.0 KiB
Python

# Copyright 2022 (c) Anna Schumaker.
"""Tests our custom Gtk.Entries."""
import unittest
import emmental.entry
from gi.repository import Gtk
class TestFilterEntry(unittest.TestCase):
"""Test our custom FilterEntry."""
def setUp(self):
"""Set up common variables."""
self.entry = emmental.entry.Filter(what="tests")
def test_init(self):
"""Test that the entry is configured correctly."""
self.assertIsInstance(self.entry, Gtk.SearchEntry)
self.assertEqual(self.entry.get_property("placeholder-text"),
"type to filter tests")
self.assertEqual(self.entry.get_placeholder_text(),
"type to filter tests")
def test_get_query(self):
"""Test the get_query() function."""
self.assertEqual(self.entry.get_query(), None)
self.entry.set_text("^test")
self.assertEqual(self.entry.get_query(), "test*")
class TestValueEntry(unittest.TestCase):
"""Test our custom Value Entries."""
def test_integer(self):
"""Test the Integer entry."""
entry = emmental.entry.Integer()
self.assertIsInstance(entry, emmental.entry.ValueBase)
self.assertIsInstance(entry, emmental.entry.Gtk.Entry)
self.assertEqual(entry.get_input_purpose(), Gtk.InputPurpose.DIGITS)
self.assertEqual(entry.value, 0)
self.assertEqual(entry.get_text(), "0")
entry.value = 42
self.assertEqual(entry.get_text(), "42")
entry.set_text("12345")
entry.emit("activate")
self.assertEqual(entry.value, 12345)
entry2 = emmental.entry.Integer(value=42)
self.assertEqual(entry2.value, 42)
self.assertEqual(entry2.get_text(), "42")
def test_float(self):
"""Test the Float entry."""
entry = emmental.entry.Float()
self.assertIsInstance(entry, emmental.entry.ValueBase)
self.assertEqual(entry.get_input_purpose(), Gtk.InputPurpose.NUMBER)
self.assertEqual(entry.value, 0.0)
self.assertEqual(entry.get_text(), "0.0")
entry.value = 4.2
self.assertEqual(entry.get_text(), "4.2")
entry.set_text("1.2345")
entry.emit("activate")
self.assertEqual(entry.value, 1.2345)
entry2 = emmental.entry.Float(value=4.2)
self.assertEqual(entry2.value, 4.2)
self.assertEqual(entry2.get_text(), "4.2")
def test_string(self):
"""Test the String entry."""
entry = emmental.entry.String()
self.assertIsInstance(entry, emmental.entry.ValueBase)
self.assertEqual(entry.get_input_purpose(), Gtk.InputPurpose.FREE_FORM)
self.assertEqual(entry.value, "")
self.assertEqual(entry.get_text(), "")
entry.value = "text"
self.assertEqual(entry.get_text(), "text")
entry.set_text("other text")
entry.emit("activate")
self.assertEqual(entry.value, "other text")
entry2 = emmental.entry.String(value="text")
self.assertEqual(entry2.value, "text")
self.assertEqual(entry2.get_text(), "text")