1# Copyright 2013 Christoph Reiter
2#
3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by
5# the Free Software Foundation; either version 2 of the License, or
6# (at your option) any later version.
7
8from senf import fsnative
9
10from tests import TestCase
11
12import quodlibet
13from quodlibet import config
14from quodlibet.const import Version
15
16
17class TQuodlibet(TestCase):
18
19    def setUp(self):
20        config.init()
21
22    def tearDown(self):
23        config.quit()
24
25    def test_first_session(self):
26        self.assertTrue(quodlibet.is_first_session("quodlibet"))
27        self.assertTrue(quodlibet.is_first_session("quodlibet"))
28        quodlibet.finish_first_session("exfalso")
29        self.assertTrue(quodlibet.is_first_session("quodlibet"))
30        quodlibet.finish_first_session("quodlibet")
31        self.assertFalse(quodlibet.is_first_session("quodlibet"))
32
33    def test_dirs(self):
34        self.assertTrue(isinstance(quodlibet.get_base_dir(), fsnative))
35        self.assertTrue(isinstance(quodlibet.get_image_dir(), fsnative))
36        self.assertTrue(isinstance(quodlibet.get_user_dir(), fsnative))
37        self.assertTrue(isinstance(quodlibet.get_cache_dir(), fsnative))
38
39    def test_get_build_description(self):
40        quodlibet.get_build_description()
41
42    def test_get_build_version(self):
43        ver = quodlibet.get_build_version()
44        self.assertTrue(isinstance(ver, tuple))
45
46
47class TVersion(TestCase):
48
49    def test_message(self):
50        v = Version("foo", 1, 2, message="bla")
51        self.assertRaises(ImportError, v.check, (1, 1))
52        try:
53            v.check((1, 1))
54        except ImportError as e:
55            self.assertTrue("bla" in str(e))
56