Revision 8387eb79
Added by Shlomi Zadok over 8 years ago
app/models/environment.rb | ||
---|---|---|
class Environment < ActiveRecord::Base
|
||
extend FriendlyId
|
||
friendly_id :name
|
||
include Taxonomix
|
||
include Authorizable
|
||
include Parameterizable::ByName
|
||
include Parameterizable::ByIdName
|
||
|
||
validates_lengths_from_database
|
||
before_destroy EnsureNotUsedBy.new(:hosts, :hostgroups)
|
test/functional/api/v2/smart_proxies_controller_test.rb | ||
---|---|---|
test "should obsolete puppetclasses" do
|
||
setup_import_classes
|
||
as_admin do
|
||
assert_difference('Environment.find("env1").puppetclasses.count', -2) do
|
||
assert_difference('Environment.find_by_name("env1").puppetclasses.count', -2) do
|
||
post :import_puppetclasses, {:id => smart_proxies(:puppetmaster).id}, set_session_user
|
||
end
|
||
end
|
test/functional/environments_controller_test.rb | ||
---|---|---|
environment = Environment.new :name => "some_environment"
|
||
assert environment.save!
|
||
|
||
get :edit, {:id => environment.name}, set_session_user
|
||
get :edit, {:id => environment.to_param}, set_session_user
|
||
assert_response :success
|
||
end
|
||
|
||
... | ... | |
environment = Environment.new :name => "some_environment"
|
||
assert environment.save!
|
||
|
||
put :update, { :commit => "Update", :id => environment.name, :environment => {:name => "other_environment"} }, set_session_user
|
||
put :update, { :commit => "Update", :id => environment.to_param, :environment => {:name => "other_environment"} }, set_session_user
|
||
env = Environment.find(environment)
|
||
assert env.name == "other_environment"
|
||
|
||
... | ... | |
assert environment.save!
|
||
|
||
assert_difference('Environment.count', -1) do
|
||
delete :destroy, {:id => environment.name}, set_session_user
|
||
delete :destroy, {:id => environment.to_param}, set_session_user
|
||
end
|
||
|
||
assert_redirected_to environments_path
|
||
... | ... | |
assert_equal "Successfully updated environments and Puppet classes from the on-disk Puppet installation", flash[:notice]
|
||
assert Environment.find_by_name("env1").puppetclasses.map(&:name).sort == ["a", "b", "c"]
|
||
end
|
||
|
||
test "should handle disk environment containing less classes" do
|
||
setup_import_classes
|
||
as_admin {Puppetclass.create(:name => "d")}
|
||
... | ... | |
get :index, {}, set_session_user
|
||
assert_response :success
|
||
end
|
||
|
||
test "should accept environment with name 'name'" do
|
||
@request.env["HTTP_REFERER"] = environments_url
|
||
ProxyAPI::Puppet.any_instance.stubs(:environments).returns(["new"])
|
||
get :import_environments, {:proxy => smart_proxies(:puppetmaster)}, set_session_user
|
||
post :obsolete_and_new,
|
||
{"changed" =>
|
||
{"new" =>
|
||
{"new" => '{"a":{"new":{}}}'}
|
||
}
|
||
}, set_session_user
|
||
assert(Environment.all.map(&:name).include?('new'), 'Should include environment with name "new"')
|
||
end
|
||
end
|
test/unit/environment_test.rb | ||
---|---|---|
|
||
test "should have name" do
|
||
env = Environment.new
|
||
assert !env.valid?
|
||
refute env.valid?
|
||
end
|
||
|
||
test "name should be unique" do
|
||
as_admin do
|
||
env = Environment.create :name => "foo"
|
||
env2 = Environment.new :name => env.name
|
||
assert !env2.valid?
|
||
refute env2.valid?
|
||
end
|
||
end
|
||
|
||
... | ... | |
environment.reload
|
||
end
|
||
end
|
||
|
||
test "Should create environment with the name 'new'" do
|
||
environment = Environment.new(:name => 'new')
|
||
assert environment.valid?
|
||
end
|
||
end
|
Also available in: Unified diff
fixes #11037 - Add ByIdName to environment model