diff options
author | Rémy Coutable <remy@rymai.me> | 2016-08-04 10:09:18 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-08-04 15:14:17 +0200 |
commit | 69c81e9e6fe094780185fecc459df5fad08e2a36 (patch) | |
tree | 6faf3a4924b0fa3d9bf8bb964efbaf9b2ab07f29 | |
parent | dd0cd2a64cfe22c33731a9a886416140a41af2be (diff) | |
download | gitlab-ce-69c81e9e6fe094780185fecc459df5fad08e2a36.tar.gz |
Merge branch 'fix/import-error' into 'master'
Fix Import/Export error checking versions
Fixes small bug preventing the correct error message about Import/Export version being displayed.
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/20536
- [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- Tests
- [x] Added for this feature/bug
- [x] All builds are passing
- [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
See merge request !5638
Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | lib/gitlab/import_export/version_checker.rb | 2 | ||||
-rw-r--r-- | spec/lib/gitlab/import_export/version_checker_spec.rb | 30 |
3 files changed, 32 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG index d31bcdab015..24d82884010 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,6 +4,7 @@ v 8.10.4 (unreleased) - Don't close referenced upstream issues from a forked project. - Fixes issue with dropdowns `enter` key not working correctly. !5544 - Fix Import/Export project import not working in HA mode. !5618 + - Fix Import/Export error checking versions. !5638 v 8.10.3 - Fix Import/Export issue importing milestones and labels not associated properly. !5426 diff --git a/lib/gitlab/import_export/version_checker.rb b/lib/gitlab/import_export/version_checker.rb index abfc694b879..de3fe6d822e 100644 --- a/lib/gitlab/import_export/version_checker.rb +++ b/lib/gitlab/import_export/version_checker.rb @@ -25,7 +25,7 @@ module Gitlab def verify_version!(version) if Gem::Version.new(version) > Gem::Version.new(Gitlab::ImportExport.version) - raise Gitlab::ImportExport::Error("Import version mismatch: Required <= #{Gitlab::ImportExport.version} but was #{version}") + raise Gitlab::ImportExport::Error.new("Import version mismatch: Required <= #{Gitlab::ImportExport.version} but was #{version}") else true end diff --git a/spec/lib/gitlab/import_export/version_checker_spec.rb b/spec/lib/gitlab/import_export/version_checker_spec.rb new file mode 100644 index 00000000000..90c6d1c67f6 --- /dev/null +++ b/spec/lib/gitlab/import_export/version_checker_spec.rb @@ -0,0 +1,30 @@ +require 'spec_helper' + +describe Gitlab::ImportExport::VersionChecker, services: true do + describe 'bundle a project Git repo' do + let(:shared) { Gitlab::ImportExport::Shared.new(relative_path: '') } + let(:version) { Gitlab::ImportExport.version } + + before do + allow(File).to receive(:open).and_return(version) + end + + it 'returns true if Import/Export have the same version' do + expect(described_class.check!(shared: shared)).to be true + end + + context 'newer version' do + let(:version) { '900.0'} + + it 'returns false if export version is newer' do + expect(described_class.check!(shared: shared)).to be false + end + + it 'shows the correct error message' do + described_class.check!(shared: shared) + + expect(shared.errors.first).to eq("Import version mismatch: Required <= #{Gitlab::ImportExport.version} but was #{version}") + end + end + end +end |