コード例 #1
0
    def test_get_units(self, find):
        units = [
            Mock(name='0', branch='branch:1', created=0),
            Mock(name='1', branch='branch:1', created=1),
            Mock(name='2', branch='branch:2', created=2),
            Mock(name='3', branch='branch:2', created=3),
            Mock(name='4', branch='branch:2', created=4),
            Mock(name='5', branch='branch:3', created=5),
        ]

        find.return_value = [reversed(units)]

        parent = Mock()
        parent.get_repo.return_value = Mock(id='id-1234')

        # test
        main = steps.MainStep()
        main.parent = parent
        unit_list = main._get_units()

        # validation
        find.assert_called_once_with(parent.get_repo.return_value.id,
                                     model.Branch)
        self.assertEqual(sorted(unit_list),
                         sorted([units[1], units[4], units[5]]))
コード例 #2
0
    def test_get_units(self, criteria):
        units = [
            Mock(unit_key={'branch': 'branch:1'}),
            Mock(unit_key={'branch': 'branch:1'}),
            Mock(unit_key={'branch': 'branch:2'}),
            Mock(unit_key={'branch': 'branch:2'}),
            Mock(unit_key={'branch': 'branch:2'}),
            Mock(unit_key={'branch': 'branch:3'}),
        ]
        conduit = Mock()
        conduit.get_units.return_value = units
        parent = Mock()
        parent.get_conduit.return_value = conduit

        # test
        main = steps.MainStep()
        main.parent = parent
        _units = main._get_units()

        # validation
        criteria.assert_called_once_with(unit_sort=[
            ('_id',
             pulp_constants.SORT_DIRECTION[pulp_constants.SORT_ASCENDING])
        ],
                                         type_ids=[constants.OSTREE_TYPE_ID])
        conduit.get_units.assert_called_once_with(criteria.return_value,
                                                  as_generator=True)
        self.assertEqual(sorted(_units),
                         sorted([units[1], units[-2], units[-1]]))
コード例 #3
0
    def test_process_main(self, lib, add_ref):
        units = [
            Mock(branch='branch:1', commit='commit:1', storage_path='path:1'),
            Mock(branch='branch:2', commit='commit:2', storage_path='path:2'),
        ]
        repository = Mock()
        lib.Repository.return_value = repository
        parent = Mock(publish_dir='/tmp/dir-1234')

        # test
        main = steps.MainStep()
        main._get_units = Mock(return_value=units)
        main.parent = parent
        main.process_main()

        # validation
        lib.Repository.assert_called_once_with(parent.publish_dir)
        repository.create.assert_called_once_with()
        self.assertEqual(repository.pull_local.call_args_list,
                         [((u.storage_path, [u.commit]), {}) for u in units])
        self.assertEqual(add_ref.call_args_list,
                         [((parent.publish_dir, u.branch, u.commit), {})
                          for u in units])
        lib.Summary.assert_called_once_with(repository)
        lib.Summary.return_value.generate.assert_called_once_with()
コード例 #4
0
ファイル: test_steps.py プロジェクト: ammaritiz/pulp_ostree
    def test_process_main(self, lib, add_ref):
        depth = 3
        units = [
            Mock(branch='branch:1', commit='commit:1', storage_path='path:1'),
            Mock(branch='branch:2', commit='commit:2', storage_path='path:2'),
        ]
        repository = Mock()
        lib.Repository.return_value = repository
        config = {
            constants.DISTRIBUTOR_CONFIG_KEY_DEPTH: depth
        }
        parent = Mock(publish_dir='/tmp/dir-1234', config=config)

        # test
        main = steps.MainStep()
        main._get_units = Mock(return_value=units)
        main.parent = parent
        main.process_main()

        # validation
        lib.Repository.assert_called_once_with(parent.publish_dir)
        repository.create.assert_called_once_with()
        self.assertEqual(
            repository.pull_local.call_args_list,
            [
                call(u.storage_path, [u.commit], depth) for u in units
            ])
        self.assertEqual(
            add_ref.call_args_list,
            [
                call(parent.publish_dir, u.branch, u.commit) for u in units
            ])
        lib.Summary.assert_called_once_with(repository)
        lib.Summary.return_value.generate.assert_called_once_with()
コード例 #5
0
ファイル: test_steps.py プロジェクト: ammaritiz/pulp_ostree
    def test_process_main_exception(self, lib):
        units = [
            Mock(branch='branch:1', commit='commit:1', storage_path='path:1'),
        ]
        repository = Mock()
        repository.pull_local.side_effect = LibError
        lib.Repository.return_value = repository
        lib.LibError = LibError
        parent = Mock(publish_dir='/tmp/dir-1234', config={})

        # test
        main = steps.MainStep()
        main._get_units = Mock(return_value=units)
        main.parent = parent

        with self.assertRaises(PulpCodedException) as assertion:
            main.process_main()
            self.assertEqual(assertion.exception.error_code, errors.OST0006)
コード例 #6
0
    def test_process_main(self, lib, add_ref):
        working_dir = '/tmp/working'
        units = [
            Mock(storage_path='/tmp/path:1',
                 unit_key={
                     'branch': 'branch:1',
                     'commit': 'commit:1'
                 },
                 metadata='md:1'),
            Mock(storage_path='/tmp/path:2',
                 unit_key={
                     'branch': 'branch:2',
                     'commit': 'commit:2'
                 },
                 metadata='md:2'),
        ]
        repo = Mock(id='test', working_dir=working_dir)
        parent = Mock()
        parent.get_repo.return_value = repo
        parent.working_dir = working_dir

        ostree_repo = Mock()
        lib.Repository.return_value = ostree_repo

        # test
        main = steps.MainStep()
        main._get_units = Mock(return_value=units)
        main.parent = parent
        main.process_main()

        # validation
        path = os.path.join(working_dir, repo.id)
        lib.Repository.assert_called_once_with(path)
        ostree_repo.create.assert_called_once_with()
        self.assertEqual(ostree_repo.pull_local.call_args_list, [
            ((units[0].storage_path, [units[0].unit_key['commit']]), {}),
            ((units[1].storage_path, [units[1].unit_key['commit']]), {}),
        ])
        self.assertEqual(add_ref.call_args_list, [
            ((path, units[0].unit_key['branch'], units[0].unit_key['commit']),
             {}),
            ((path, units[1].unit_key['branch'], units[1].unit_key['commit']),
             {}),
        ])
コード例 #7
0
 def test_init(self):
     main = steps.MainStep()
     self.assertEqual(main.step_id, constants.PUBLISH_STEP_MAIN)