test_docker_execution.py 2.87 KB
Newer Older
1
2
3
4
5
#!/usr/bin/env python
# vim: set fileencoding=utf-8 :

###############################################################################
#                                                                             #
6
# Copyright (c) 2016 Idiap Research Institute, http://www.idiap.ch/           #
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Contact: beat.support@idiap.ch                                              #
#                                                                             #
# This file is part of the beat.core module of the BEAT platform.             #
#                                                                             #
# Commercial License Usage                                                    #
# Licensees holding valid commercial BEAT licenses may use this file in       #
# accordance with the terms contained in a written agreement between you      #
# and Idiap. For further information contact tto@idiap.ch                     #
#                                                                             #
# Alternatively, this file may be used under the terms of the GNU Affero      #
# Public License version 3 as published by the Free Software and appearing    #
# in the file LICENSE.AGPL included in the packaging of this file.            #
# The BEAT platform is distributed in the hope that it will be useful, but    #
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY  #
# or FITNESS FOR A PARTICULAR PURPOSE.                                        #
#                                                                             #
# You should have received a copy of the GNU Affero Public License along      #
# with the BEAT platform. If not, see http://www.gnu.org/licenses/.           #
#                                                                             #
###############################################################################

28
29

# Tests for experiment execution within Docker containers
30
31

from ..dock import Host
32
33
34
35
from ..execution import DockerExecutor

from .test_execution import BaseExecution

36

37
#----------------------------------------------------------
38
39


40
class TestDockerExecution(BaseExecution):
41

42
43
44
45
46
47
48
49
50
    @classmethod
    def setUpClass(cls):
        cls.host = Host(raise_on_errors=False)


    @classmethod
    def tearDownClass(cls):
        cls.host.teardown()
        cleanup()
51
52
53


    def tearDown(self):
54
        super(TestDockerExecution, self).tearDown()
55
56
57
        self.host.teardown()


58
59
60
61
62
    def create_executor(self, prefix, configuration, tmp_prefix, dataformat_cache,
                        database_cache, algorithm_cache):
        return DockerExecutor(self.host, prefix, configuration, tmp_prefix,
                              dataformat_cache, database_cache, algorithm_cache)

63

64
65
66
67
    # NOT COMPATIBLE YET WITH THE NEW API
    # @slow
    # def test_cxx_double_1(self):
    #     assert self.execute('user/user/double/1/cxx_double', [{'out_data': 42}]) is None