コード例 #1
0
    def test_not_set_delta_property_correctly(self):
        self.assertThat(
            lambda: deltas.BaseDeltasGenerator(source_path=self.source_file,
                                               target_path=self.target_file,
                                               delta_format=None,
                                               delta_tool_path=self.
                                               delta_tool_path),
            m.raises(deltas.errors.DeltaFormatError))
        exception = self.assertRaises(deltas.errors.DeltaFormatError,
                                      deltas.BaseDeltasGenerator,
                                      source_path=self.source_file,
                                      target_path=self.target_file,
                                      delta_format=None,
                                      delta_tool_path='/usr/bin/xdelta3')
        expected = 'delta_format must be set in subclass!'
        self.assertEqual(str(exception), expected)

        self.assertThat(
            lambda: deltas.BaseDeltasGenerator(source_path=self.source_file,
                                               target_path=self.target_file,
                                               delta_format='xdelta3',
                                               delta_tool_path=None),
            m.raises(deltas.errors.DeltaToolError))
        exception = self.assertRaises(deltas.errors.DeltaToolError,
                                      deltas.BaseDeltasGenerator,
                                      source_path=self.source_file,
                                      target_path=self.target_file,
                                      delta_format='xdelta3',
                                      delta_tool_path=None)
        expected = 'delta_tool_path must be set in subclass!'
        self.assertEqual(str(exception), expected)

        self.assertThat(
            lambda: deltas.BaseDeltasGenerator(source_path=self.source_file,
                                               target_path=self.target_file,
                                               delta_format='not-defined',
                                               delta_tool_path=
                                               '/usr/bin/xdelta3'),
            m.raises(deltas.errors.DeltaFormatOptionError))
        exception = self.assertRaises(deltas.errors.DeltaFormatOptionError,
                                      deltas.BaseDeltasGenerator,
                                      source_path=self.source_file,
                                      target_path=self.target_file,
                                      delta_format='invalid-delta-format',
                                      delta_tool_path=self.delta_tool_path)
        expected = """delta_format must be a option in ['xdelta3'].
for now delta_format='invalid-delta-format'"""
        self.assertEqual(str(exception), expected)
コード例 #2
0
    def test_file_existence_failed(self):
        class Tmpdelta(deltas.BaseDeltasGenerator):
            delta_format = 'xdelta3'
            delta_tool_path = 'delta-gen-tool-path'

        self.assertThat(
            lambda: deltas.BaseDeltasGenerator(
                source_path='invalid-source-file',
                target_path=self.target_file,
                delta_format='xdelta3',
                delta_tool_path='delta-gen-tool-path'), m.raises(ValueError))
        self.assertThat(
            lambda: deltas.BaseDeltasGenerator(
                source_path=self.source_file,
                target_path='invalid-target_file',
                delta_format='xdelta3',
                delta_tool_path='delta-gen-tool-path'), m.raises(ValueError))
コード例 #3
0
    def test_subclass_not_implement_get_delta_cmd(self):
        tmp_delta = deltas.BaseDeltasGenerator(
            source_path=self.source_file,
            target_path=self.target_file,
            delta_format='xdelta3',
            delta_tool_path=self.delta_tool_path)

        self.assertThat(lambda: tmp_delta.make_delta(is_for_test=True),
                        m.raises(NotImplementedError))
コード例 #4
0
ファイル: test_deltas.py プロジェクト: wting/snapcraft
    def test_file_existence_failed(self):
        class Tmpdelta(deltas.BaseDeltasGenerator):
            pass

        self.assertThat(
            lambda: deltas.BaseDeltasGenerator(
                source_path="invalid-source-file",
                target_path=self.target_file,
                delta_format="xdelta3",
                delta_tool="delta-gen-tool-path",
            ),
            m.raises(ValueError),
        )
        self.assertThat(
            lambda: deltas.BaseDeltasGenerator(
                source_path=self.source_file,
                target_path="invalid-target_file",
                delta_format="xdelta3",
                delta_tool="delta-gen-tool-path",
            ),
            m.raises(ValueError),
        )
コード例 #5
0
    def test_find_unique_file_name(self):
        tmp_delta = deltas.BaseDeltasGenerator(
            source_path=self.source_file,
            target_path=self.target_file,
            delta_format='xdelta3',
            delta_tool_path=self.delta_tool_path)

        unique_file_name = tmp_delta.find_unique_file_name(
            tmp_delta.source_path)
        self.assertEqual(unique_file_name, tmp_delta.source_path + '-0')
        with open(unique_file_name, 'wb') as f:
            f.write(b'tmp file.')

        self.assertEqual(
            tmp_delta.find_unique_file_name(tmp_delta.source_path),
            tmp_delta.source_path + '-1')
コード例 #6
0
ファイル: test_deltas.py プロジェクト: wting/snapcraft
    def test_find_unique_file_name(self):
        tmp_delta = deltas.BaseDeltasGenerator(
            source_path=self.source_file,
            target_path=self.target_file,
            delta_format="xdelta3",
            delta_tool=self.delta_tool_path,
        )

        unique_file_name = tmp_delta.find_unique_file_name(
            tmp_delta.source_path)
        self.assertThat(unique_file_name,
                        m.Equals(tmp_delta.source_path + "-0"))
        with open(unique_file_name, "wb") as f:
            f.write(b"tmp file.")

        self.assertThat(
            tmp_delta.find_unique_file_name(tmp_delta.source_path),
            m.Equals(tmp_delta.source_path + "-1"),
        )
コード例 #7
0
    def test_large_delta_raises_error(self):
        delta_file = os.path.join(self.workdir, 'target.snap.delta')
        target_file = os.path.join(self.workdir, 'target.snap')
        source_file = os.path.join(self.workdir, 'source.snap')

        with open(delta_file, 'wb') as delta, \
                open(source_file, 'wb') as source:
            delta.seek(999 - 1)
            delta.write(b'\0')
            source.seek(1000 - 1)
            source.write(b'\0')

        generator = deltas.BaseDeltasGenerator(
            source_path=source_file,
            target_path=target_file,
            delta_format='xdelta3',
            delta_tool_path=self.delta_tool_path)

        self.assertThat(
            lambda: generator._check_delta_size_constraint(delta_file),
            m.raises(deltas.errors.DeltaGenerationTooBigError))
コード例 #8
0
ファイル: test_deltas.py プロジェクト: wting/snapcraft
    def test_not_set_delta_property_correctly(self):
        self.assertThat(
            lambda: deltas.BaseDeltasGenerator(
                source_path=self.source_file,
                target_path=self.target_file,
                delta_format="not-defined",
                delta_tool="/usr/bin/xdelta3",
            ),
            m.raises(deltas.errors.DeltaFormatOptionError),
        )
        exception = self.assertRaises(
            deltas.errors.DeltaFormatOptionError,
            deltas.BaseDeltasGenerator,
            source_path=self.source_file,
            target_path=self.target_file,
            delta_format="invalid-delta-format",
            delta_tool=self.delta_tool_path,
        )
        expected = """delta_format must be a option in ['xdelta3'].
for now delta_format='invalid-delta-format'"""
        self.assertThat(str(exception), m.Equals(expected))
コード例 #9
0
ファイル: test_deltas.py プロジェクト: wting/snapcraft
    def test_large_delta_raises_error(self):
        delta_file = os.path.join(self.workdir, "target.snap.delta")
        target_file = os.path.join(self.workdir, "target.snap")
        source_file = os.path.join(self.workdir, "source.snap")

        with open(delta_file, "wb") as delta, open(source_file,
                                                   "wb") as source:
            delta.seek(999 - 1)
            delta.write(b"\0")
            source.seek(1000 - 1)
            source.write(b"\0")

        generator = deltas.BaseDeltasGenerator(
            source_path=source_file,
            target_path=target_file,
            delta_format="xdelta3",
            delta_tool=self.delta_tool_path,
        )

        self.assertThat(
            lambda: generator._check_delta_size_constraint(delta_file),
            m.raises(deltas.errors.DeltaGenerationTooBigError),
        )