forked from LBRYCommunity/lbry-sdk
54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
|
import json
|
||
|
import os
|
||
|
import shutil
|
||
|
import tempfile
|
||
|
|
||
|
from twisted.trial import unittest
|
||
|
import mock
|
||
|
|
||
|
from lbrynet.lbrynet_daemon import UIManager
|
||
|
|
||
|
|
||
|
class BundledUIManagerTest(unittest.TestCase):
|
||
|
def setUp(self):
|
||
|
self.active_dir = tempfile.mkdtemp()
|
||
|
self.bundled_dir = tempfile.mkdtemp()
|
||
|
self.manager = UIManager.BundledUIManager(mock.Mock(), self.active_dir, self.bundled_dir)
|
||
|
|
||
|
def tearDown(self):
|
||
|
shutil.rmtree(self.active_dir)
|
||
|
shutil.rmtree(self.bundled_dir)
|
||
|
|
||
|
def test_when_bundle_is_not_available(self):
|
||
|
result = self.manager.setup()
|
||
|
self.assertFalse(result)
|
||
|
expected = []
|
||
|
self.assertEqual(os.listdir(self.active_dir), expected)
|
||
|
|
||
|
def test_when_already_bundled(self):
|
||
|
make_data_file(self.active_dir)
|
||
|
make_data_file(self.bundled_dir)
|
||
|
result = self.manager.setup()
|
||
|
self.assertTrue(result)
|
||
|
expected = ['data.json']
|
||
|
self.assertEqual(os.listdir(self.active_dir), expected)
|
||
|
|
||
|
def test_bundled_files_are_copied(self):
|
||
|
make_data_file(self.active_dir)
|
||
|
make_data_file(self.bundled_dir, 'BARFOO')
|
||
|
touch(os.path.join(self.bundled_dir, 'test.html'))
|
||
|
result = self.manager.setup()
|
||
|
self.assertTrue(result)
|
||
|
expected = ['data.json', 'test.html']
|
||
|
self.assertItemsEqual(os.listdir(self.active_dir), expected)
|
||
|
|
||
|
|
||
|
def make_data_file(directory, sha='FOOBAR'):
|
||
|
with open(os.path.join(directory, 'data.json'), 'w') as f:
|
||
|
json.dump({'sha': sha}, f)
|
||
|
|
||
|
|
||
|
def touch(filename):
|
||
|
with open(filename, 'a') as f:
|
||
|
pass
|