Beispiel #1
0
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'))
Beispiel #2
0
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'))
Beispiel #3
0
 def setUp(self):
     super(TestFileResource, self).setUp()
     self.res = FileResource(self.path)
Beispiel #4
0
    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))
Beispiel #5
0
 def setUp(self):
     super(TestFileResource, self).setUp()
     self.res = FileResource(self.path)