class TestFileResource(Common, unittest.TestCase): def setUp(self): super(TestFileResource, self).setUp() self.res = FileResource(self.path) def tearDown(self): del self.res super(TestFileResource, self).tearDown() def test_filename(self): with self.res.filename('a.yml') as filename: self.assertEqual(filename, os.path.join(self.path, 'a.yml')) with self.res.get(['subdir', 'b.yml']).filename() as filename: self.assertEqual(filename, os.path.join(self.path, 'subdir', 'b.yml'))
class TestFileResource(Common, unittest.TestCase): def setUp(self): super(TestFileResource, self).setUp() self.res = FileResource(self.path) def tearDown(self): del self.res super(TestFileResource, self).tearDown() def test_filename(self): with self.res.filename('a.json') as filename: self.assertEqual( filename, os.path.join(self.path, 'a.json')) with self.res.get(['subdir', 'b.json']).filename() as filename: self.assertEqual( filename, os.path.join(self.path, 'subdir', 'b.json'))
def setUp(self): super(TestFileResource, self).setUp() self.res = FileResource(self.path)
def setUp(self): self.base = mkdtemp() self.locator = MergedModelLocator(FileResource(self.base)) # NOTE: currently, pathes are always resolved relative to the # derived model: create_test_file(self.base, ['resdata', 'a', 'a.txt']) create_test_file(self.base, ['resdata', 'b', 'a.txt']) create_test_file(self.base, ['resdata', 'c', 'a.txt']) create_test_file(self.base, ['repdata', 'b', 'b.txt']) create_test_file(self.base, ['dbdir', 'c', 'b.txt']) create_test_file(self.base, ['dbdir', 'c', 'c.txt']) self.unicode_data = u"€®æة《±∓" abc = { "a": { # virtual models should not be listed: "real": False, "path-offsets": { "repository-offset": "a", "resource-offset": "a" }, # some data that will partly be overwriten in 'b' and 'c': "data": { 'a': 'a', 'ab': 'a', 'ac': 'a', 'abc': 'a' }, "files": [{ "path": "a.txt", "location": "RESOURCE" }], }, "b": { "real": True, # subclasses 'a': "extends": ['a'], "path-offsets": { "repository-offset": "b", "resource-offset": "b" }, "data": { 'b': 'b', 'ab': 'b', 'bc': 'b', 'abc': 'b' }, "files": [ { "path": "b.txt", "location": "REPOSITORY" }, ], # some unicode test data: "unicode": self.unicode_data }, "c": { "real": True, # subclasses 'b' -> 'a': "extends": ['b'], # different location for REPOSITORY: "dbdirs": [os.path.join(self.base, 'dbdir')], "path-offsets": { "repository-offset": "c", "resource-offset": "c" }, "data": { 'c': 'c', 'ac': 'c', 'bc': 'c', 'abc': 'c' }, # missing 'location' defaults to REPOSITORY: "files": [{ "path": "c.txt" }], }, } de = {"d": abc["a"].copy(), "e": abc["b"].copy()} de['e']['extends'] = ['d'] create_test_file(self.base, ['abc.cpymad.yml'], json.dumps(abc, ensure_ascii=False)) create_test_file(self.base, ['de.cpymad.yml'], json.dumps(de, ensure_ascii=False))