2017-07-09 21:52:24 +00:00
|
|
|
require_relative "../../../../base"
|
|
|
|
|
|
|
|
describe "VagrantPlugins::GuestALT::Cap::Flavor" do
|
|
|
|
let(:caps) do
|
|
|
|
VagrantPlugins::GuestALT::Plugin
|
|
|
|
.components
|
|
|
|
.guest_capabilities[:alt]
|
|
|
|
end
|
|
|
|
|
|
|
|
let(:machine) { double("machine") }
|
|
|
|
let(:comm) { VagrantTests::DummyCommunicator::Communicator.new(machine) }
|
|
|
|
|
|
|
|
before do
|
|
|
|
allow(machine).to receive(:communicate).and_return(comm)
|
|
|
|
end
|
|
|
|
|
|
|
|
after do
|
|
|
|
comm.verify_expectations!
|
|
|
|
end
|
|
|
|
|
|
|
|
describe ".flavor" do
|
|
|
|
let(:cap) { caps.get(:flavor) }
|
|
|
|
|
2017-07-10 00:08:27 +00:00
|
|
|
context "without /etc/os-release file" do
|
|
|
|
{
|
|
|
|
"ALT 8.1 Server" => :alt_8,
|
|
|
|
"ALT Education 8.1" => :alt_8,
|
|
|
|
"ALT Workstation 8.1" => :alt_8,
|
|
|
|
"ALT Workstation K 8.1 (Centaurea Ruthenica)" => :alt_8,
|
|
|
|
"ALT Linux p8 (Hypericum)" => :alt_8,
|
|
|
|
|
|
|
|
"ALT Sisyphus (unstable) (sisyphus)" => :alt,
|
|
|
|
"ALT Linux Sisyphus (unstable)" => :alt,
|
|
|
|
"ALT Linux 6.0.1 Spt (separator)" => :alt,
|
|
|
|
"ALT Linux 7.0.5 School Master" => :alt,
|
|
|
|
"ALT starter kit (Hypericum)" => :alt,
|
|
|
|
|
|
|
|
"ALT" => :alt,
|
|
|
|
"Simply" => :alt,
|
|
|
|
}.each do |str, expected|
|
|
|
|
it "returns #{expected} for #{str} in /etc/altlinux-release" do
|
|
|
|
comm.stub_command("test -f /etc/os-release", exit_code: 1)
|
|
|
|
comm.stub_command("cat /etc/altlinux-release", stdout: str)
|
|
|
|
expect(cap.flavor(machine)).to be(expected)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context "with /etc/os-release file" do
|
|
|
|
{
|
|
|
|
[ "NAME=\"Sisyphus\"", "VERSION_ID=20161130" ] => :alt,
|
|
|
|
|
|
|
|
[ "NAME=\"ALT Education\"", "VERSION_ID=8.1" ] => :alt_8,
|
|
|
|
[ "NAME=\"ALT Server\"", "VERSION_ID=8.1" ] => :alt_8,
|
|
|
|
[ "NAME=\"ALT SPServer\"", "VERSION_ID=8.0" ] => :alt_8,
|
|
|
|
[ "NAME=\"starter kit\"", "VERSION_ID=p8" ] => :alt_8,
|
|
|
|
[ "NAME=\"ALT Linux\"", "VERSION_ID=8.0.0" ] => :alt_8,
|
|
|
|
[ "NAME=\"Simply Linux\"", "VERSION_ID=7.95.0" ] => :alt_8,
|
|
|
|
|
|
|
|
[ "NAME=\"ALT Linux\"", "VERSION_ID=7.0.5" ] => :alt_7,
|
|
|
|
[ "NAME=\"School Junior\"", "VERSION_ID=7.0.5" ] => :alt_7,
|
|
|
|
}.each do |strs, expected|
|
|
|
|
it "returns #{expected} for #{strs[0]} and #{strs[1]} in /etc/os-release" do
|
|
|
|
comm.stub_command("test -f /etc/os-release", exit_code: 0)
|
|
|
|
comm.stub_command("grep NAME /etc/os-release", stdout: strs[0])
|
|
|
|
comm.stub_command("grep VERSION_ID /etc/os-release", stdout: strs[1])
|
|
|
|
expect(cap.flavor(machine)).to be(expected)
|
|
|
|
end
|
2017-07-09 21:52:24 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|