def test_get_project_config(self):
        mock_repo1 = Mock(spec_set=Repository)
        type(mock_repo1).full_name = 'myuser/foo'
        mock_repo1.get_file_contents.return_value = True
        type(mock_repo1).clone_url = 'cloneurl'
        type(mock_repo1).ssh_url = 'sshurl'

        self.cls.github.get_repo.return_value = mock_repo1
        res = self.cls.get_project_config('me/myrepo')
        assert res == ('cloneurl', 'sshurl')
        assert self.cls.github.mock_calls == [
            call.get_repo('me/myrepo'),
            call.get_repo().get_file_contents('.rebuildbot.sh', ref='master')
        ]
        assert mock_repo1.mock_calls == [
            call.get_file_contents('.rebuildbot.sh', ref='master')
        ]
    def test_get_project_config_404(self):

        def se_404(fname, ref='master'):
            raise UnknownObjectException(404, 'some data')

        mock_repo1 = Mock(spec_set=Repository)
        type(mock_repo1).full_name = 'myuser/foo'
        mock_repo1.get_file_contents.side_effect = se_404

        self.cls.github.get_repo.return_value = mock_repo1
        res = self.cls.get_project_config('me/myrepo')
        assert res == (None, None)
        assert self.cls.github.mock_calls == [
            call.get_repo('me/myrepo'),
            call.get_repo().get_file_contents('.rebuildbot.sh', ref='master')
        ]
        assert mock_repo1.mock_calls == [
            call.get_file_contents('.rebuildbot.sh', ref='master')
        ]