Project

General

Profile

« Previous | Next » 

Revision 8387eb79

Added by Shlomi Zadok over 8 years ago

fixes #11037 - Add ByIdName to environment model

View differences:

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