def test_get_templates_info(open_m, FileSystemLoader_m): loader = FileSystemLoader_m.return_value loader.list_templates.return_value = [ 'r1/t/template.j2', 'r2/t/template.j2', 'r3/t/template.j2', ] open_m.return_value = MagicMock(spec=file) file_handle = open_m.return_value.__enter__.return_value error = IOError() error.errno = errno.ENOENT file_handle.readline.side_effect = ['http://b.c/r', '', error] manager = TemplateManager('/fake') templates_info = manager.get_templates_info() enc = urlsafe_b64encode expected = [ {'id': enc('r1/t'), 'name': 'r1/t', 'data_source_url': 'http://b.c/r'}, {'id': enc('r2/t'), 'name': 'r2/t', 'data_source_url': None}, {'id': enc('r3/t'), 'name': 'r3/t', 'data_source_url': None}, ] # last call open_m.assert_called_with('/fake/r3/t/data_source_url', 'rb') assert_items_equal(expected, templates_info)
def get(self, request): manager = TemplateManager(settings.RAFEE_REPO_DIR) info = manager.get_templates_info() return Response(info)