Files
sublime-music/tests/common_ui_tests.py
2020-09-22 11:00:09 -06:00

69 lines
2.0 KiB
Python
Executable File

from pathlib import Path
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk # noqa: F401
from sublime_music.ui import common
def test_icon_buttons():
common.IconButton("cloud-offline")
common.IconToggleButton("cloud-offline")
common.IconMenuButton("cloud-offline")
def test_load_error():
test_cases = [
(
(True, True),
"cloud-offline",
"Song list may be incomplete.\nGo online to load song list.",
),
((True, False), "network-error", "Error attempting to load song list."),
((False, True), "cloud-offline", "Go online to load song list."),
((False, False), "network-error", "Error attempting to load song list."),
]
for (has_data, offline_mode), icon_name, label_text in test_cases:
load_error = common.LoadError(
"Song list", "load song list", has_data=has_data, offline_mode=offline_mode
)
assert load_error.image.get_icon_name().icon_name == f"{icon_name}-symbolic"
assert load_error.label.get_text() == label_text
def test_song_list_column():
common.SongListColumn("H", 1, bold=True, align=1.0, width=30)
def test_spinner_image():
initial_size = 300
image = common.SpinnerImage(
loading=False,
image_name="test",
spinner_name="ohea",
image_size=initial_size,
)
image.set_from_file(None)
assert image.image.get_pixbuf() is None
image.set_from_file("")
assert image.image.get_pixbuf() is None
image.set_from_file(
str(Path(__file__).parent.joinpath("mock_data", "album-art.png"))
)
assert (pixbuf := image.image.get_pixbuf()) is not None
assert pixbuf.get_width() == pixbuf.get_height() == initial_size
smaller_size = 70
image.set_image_size(smaller_size)
assert (pixbuf := image.image.get_pixbuf()) is not None
assert pixbuf.get_width() == pixbuf.get_height() == smaller_size
# Just make sure these don't raise exceptions.
image.set_loading(True)
image.set_loading(False)