Пример #1
0
    def test_completely_new_process(self):
        """If process with given slug does not exist, process.filter will return empty list"""
        self.resolwe_mock.process.filter.return_value = []

        Resolwe._register(self.resolwe_mock, self.yaml_file,
                          "alignment-bowtie")
        self.assertEqual(self.resolwe_mock.api.process.post.call_count, 1)
Пример #2
0
    def test_completely_new_process(self):
        """If process with given slug does not exist, process.filter will return empty list"""
        self.resolwe_mock.process.filter.return_value = []

        Resolwe._register(self.resolwe_mock, self.yaml_file, "alignment-bowtie")
        self.assertEqual(self.resolwe_mock.api.process.post.call_count, 1)
        self.assertEqual(self.resolwe_mock._version_int_to_string.call_count, 0)
Пример #3
0
    def test_update_existing_process(self):
        """If process exists, process.filter returns list with exactly one element."""
        # local process version > server process version
        self.resolwe_mock.process.filter.return_value = [
            MagicMock(version='1.0.12')
        ]
        Resolwe._register(self.resolwe_mock, self.yaml_file,
                          "alignment-bowtie")
        self.assertEqual(self.resolwe_mock.api.process.post.call_count, 1)
        self.assertEqual(
            self.resolwe_mock.api.process.post.call_args[0][0]['version'],
            '1.0.13')

        self.resolwe_mock.reset_mock()

        # local process version = server process version
        self.resolwe_mock.process.filter.return_value = [
            MagicMock(version='1.0.13')
        ]
        Resolwe._register(self.resolwe_mock, self.yaml_file,
                          "alignment-bowtie")
        self.assertEqual(self.resolwe_mock.api.process.post.call_count, 1)
        self.assertEqual(
            self.resolwe_mock.api.process.post.call_args[0][0]['version'],
            '1.0.14')
Пример #4
0
    def test_returns_two_processes(self):
        """
        If process process.filter will return a list of more than one
        process, this is a sign of some unexpected behaviour."""
        self.resolwe_mock.process.filter.return_value = [{}, {}]

        message = r"Unexpected behaviour at get process with slug .*"
        with six.assertRaisesRegex(self, ValueError, message):
            Resolwe._register(self.resolwe_mock, self.yaml_file, "alignment-bowtie")
Пример #5
0
    def test_raises_client_error(self):
        # Check raises error if slumber.exceptions.HttpClientError happens
        self.resolwe_mock.process.filter.return_value = []

        # Prepare response object & exception:
        response = requests.Response()
        response.status_code = 405
        exception = slumber.exceptions.HttpClientError(response=response)

        self.resolwe_mock.api.process.post.side_effect = exception
        with self.assertRaises(slumber.exceptions.HttpClientError):
            Resolwe._register(self.resolwe_mock, self.yaml_file, "alignment-bowtie")
Пример #6
0
    def test_raises_client_error(self):
        # Check raises error if slumber.exceptions.HttpClientError happens
        self.resolwe_mock.process.filter.return_value = []

        # Prepare response object & exception:
        response = requests.Response()
        response.status_code = 405
        exception = slumber.exceptions.HttpClientError(response=response)

        self.resolwe_mock.api.process.post.side_effect = exception
        with self.assertRaises(slumber.exceptions.HttpClientError):
            Resolwe._register(self.resolwe_mock, self.yaml_file, "alignment-bowtie")
Пример #7
0
    def test_update_existing_process(self):
        """If process with given slug already exists, process.filter will return list with exactly one element."""
        self.resolwe_mock.process.filter.return_value = [{'version': 16777228}]

        # local process version > server process version
        Resolwe._register(self.resolwe_mock, self.yaml_file, "alignment-bowtie")
        self.assertEqual(self.resolwe_mock.api.process.post.call_count, 1)
        # Comfirm version was NOT raised (_version_int_to_string NOT called)
        self.assertEqual(self.resolwe_mock._version_int_to_string.call_count, 0)

        self.resolwe_mock.reset_mock()

        # local process version = server process version
        self.resolwe_mock.process.filter.return_value = [{'version': 16777229}]
        Resolwe._register(self.resolwe_mock, self.yaml_file, "alignment-bowtie")
        self.assertEqual(self.resolwe_mock.api.process.post.call_count, 1)
        # Confirm version was NOT raised (_version_int_to_string NOT called)
        self.assertEqual(self.resolwe_mock._version_int_to_string.call_count, 1)
Пример #8
0
    def test_update_existing_process(self):
        """If process exists, process.filter returns list with exactly one element."""
        self.resolwe_mock.process.filter.return_value = [MagicMock(version=16777228)]

        # local process version > server process version
        Resolwe._register(self.resolwe_mock, self.yaml_file, "alignment-bowtie")
        self.assertEqual(self.resolwe_mock.api.process.post.call_count, 1)
        # Comfirm version was NOT raised (_version_int_to_string NOT called)
        self.assertEqual(self.resolwe_mock._version_int_to_string.call_count, 0)

        self.resolwe_mock.reset_mock()

        # local process version = server process version
        self.resolwe_mock.process.filter.return_value = [MagicMock(version=16777229)]
        Resolwe._register(self.resolwe_mock, self.yaml_file, "alignment-bowtie")
        self.assertEqual(self.resolwe_mock.api.process.post.call_count, 1)
        # Confirm version was NOT raised (_version_int_to_string NOT called)
        self.assertEqual(self.resolwe_mock._version_int_to_string.call_count, 1)
Пример #9
0
 def test_raise_if_slug_not_in_yaml(self):
     message = r"Process source given .* but process slug not found: .*"
     with six.assertRaisesRegex(self, ValueError, message):
         Resolwe._register(self.resolwe_mock, self.yaml_file, "bad-slug")
Пример #10
0
 def test_raise_if_bad_yaml_file(self):
     with self.assertRaises(yaml.parser.ParserError):
         Resolwe._register(self.resolwe_mock, self.bad_yaml_file,
                           "alignment-bowtie")
Пример #11
0
 def test_raise_if_no_yaml_file(self):
     message = r"File not found: .*"
     with six.assertRaisesRegex(self, ValueError, message):
         Resolwe._register(self.resolwe_mock, "/bad/path",
                           "alignment-bowtie")
Пример #12
0
 def test_raise_if_slug_not_in_yaml(self):
     message = r"Process source given .* but process slug not found: .*"
     with six.assertRaisesRegex(self, ValueError, message):
         Resolwe._register(self.resolwe_mock, self.yaml_file, "bad-slug")
Пример #13
0
 def test_raise_if_bad_yaml_file(self):
     with self.assertRaises(yaml.parser.ParserError):
         Resolwe._register(self.resolwe_mock, self.bad_yaml_file, "alignment-bowtie")
Пример #14
0
 def test_raise_if_no_yaml_file(self):
     message = r"File not found: .*"
     with six.assertRaisesRegex(self, ValueError, message):
         Resolwe._register(self.resolwe_mock, "/bad/path", "alignment-bowtie")