Source code for repository.tests.test_models
from repository.models import Repository
from repository.tests.services.simple_json_rest import get, configuration
import unittest
[docs]class TestRepository(unittest.TestCase):
[docs]    def setUp(self):
        self.repository = Repository.objects.create(
            name = 'Test',
            description = 'describe',
            configuration = configuration
        ) 
[docs]    def test_get_configuration(self):
        self.assertIsInstance(self.repository._get_configuration(), dict) 
[docs]    def test_methods(self):
        """
        There should be an attribute for each configured method.
        """
        for method in self.repository.configured_methods:
            self.assertTrue(hasattr(self.repository, method)) 
[docs]    def test_get_data_by_path(self):
        path = "path.to.my.data"
        data = {
            'path': {
                'to': {
                    'my': {
                        'data': 42
                    }
                }
            }
        }
        self.assertEqual(42, self.repository._get_data_by_path(data, path))
        path = ""
        data = 42
        self.assertEqual(42, self.repository._get_data_by_path(data, path))
        path = "path"
        data = {
            'path': 42
        }
        self.assertEqual(42, self.repository._get_data_by_path(data, path))
        path = ""
        data = [42, 43, 44, 45]
        self.assertEqual(42, self.repository._get_data_by_path(data, path)[0])
        with self.assertRaises(RuntimeError):
            path = "what.is.this"
            data = {
                'path': {
                    'to': {
                        'my': {
                            'data': 42
                        }
                    }
                }
            }
            self.repository._get_data_by_path(data, path)