2018-08-01 16:42:33 -04:00
|
|
|
"""Tests for badge_store lib"""
|
|
|
|
|
|
|
|
___license___ = "MIT"
|
|
|
|
___dependencies___ = ["upip:unittest", "badge_store", "shared/test/file.txt"]
|
|
|
|
|
2018-08-02 16:33:29 -04:00
|
|
|
import unittest, os
|
2018-08-01 16:42:33 -04:00
|
|
|
from lib.badge_store import *
|
2018-08-02 16:33:29 -04:00
|
|
|
from ospath import *
|
2018-08-01 16:42:33 -04:00
|
|
|
|
|
|
|
class TestBadgeStore(unittest.TestCase):
|
|
|
|
|
|
|
|
def setUpClass(self):
|
2018-08-27 11:28:38 -04:00
|
|
|
self.store = BadgeStore(repo="emfcamp/Mk4-Apps", ref="ee144e8")
|
2018-08-02 16:33:29 -04:00
|
|
|
self.download_file = "shared/test/download.txt"
|
|
|
|
|
|
|
|
def tearDownClass(self):
|
|
|
|
self._remove_download_file()
|
2018-08-01 16:42:33 -04:00
|
|
|
|
2018-08-02 17:42:45 -04:00
|
|
|
def test_get_all_apps(self):
|
|
|
|
response = self.store.get_all_apps()
|
2018-08-01 16:42:33 -04:00
|
|
|
self.assertEqual(response["System"], ['badge_store', 'launcher', 'settings'])
|
|
|
|
|
|
|
|
def test_categories(self):
|
|
|
|
categories = self.store.get_categories()
|
|
|
|
self.assertEqual(set(categories), set(["System", "homescreen"]))
|
|
|
|
|
2018-08-02 17:42:45 -04:00
|
|
|
def test_get_apps(self):
|
|
|
|
apps = self.store.get_apps("System")
|
|
|
|
self.assertEqual(set(apps), set(['badge_store', 'settings', 'launcher']))
|
|
|
|
|
|
|
|
def test_get_app(self):
|
2018-08-01 16:42:33 -04:00
|
|
|
response = self.store.get_app("launcher")
|
|
|
|
self.assertEqual(response["description"], "Launcher for apps currently installed")
|
|
|
|
|
2018-08-02 16:33:29 -04:00
|
|
|
def test_get_hash(self):
|
|
|
|
self.assertEqual(get_hash("shared/test/file.txt"), "182d04f8ee")
|
|
|
|
self.assertEqual(get_hash("does/not/exist.txt"), None)
|
|
|
|
|
|
|
|
def test_install_integration(self):
|
|
|
|
self._remove_download_file()
|
|
|
|
store = BadgeStore(url="http://badge.marekventur.com", repo="emfcamp/Mk4-Apps", ref="dont-delete-test-download-branch")
|
2018-08-23 18:07:25 -04:00
|
|
|
for installer in store.install(["launcher"]):
|
2018-08-02 16:33:29 -04:00
|
|
|
if installer.path == "shared/test/download.txt":
|
|
|
|
installer.download()
|
|
|
|
|
|
|
|
with open(self.download_file, "rt") as response:
|
|
|
|
self.assertIn("I'm a download test", response.read())
|
|
|
|
|
2018-08-23 18:07:25 -04:00
|
|
|
def test_bootstrap_integration(self):
|
|
|
|
self._remove_download_file()
|
|
|
|
store = BadgeStore(url="http://badge.marekventur.com")
|
|
|
|
installers = store.bootstrap()
|
|
|
|
self.assertTrue(len(installers) > 0)
|
|
|
|
|
2018-08-02 16:33:29 -04:00
|
|
|
def _remove_download_file(self):
|
|
|
|
if isdir(self.download_file) or isfile(self.download_file):
|
|
|
|
os.remove(self.download_file)
|
2018-08-01 16:42:33 -04:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
unittest.main()
|