require_relative '../../spec_helper' describe 'python', :type => :class do context "on Debian OS" do let :facts do { :id => 'root', :kernel => 'Linux', :lsbdistcodename => 'squeeze', :osfamily => 'Debian', :operatingsystem => 'Debian', :operatingsystemrelease => '6', :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', :concat_basedir => '/dne', } end it { is_expected.to contain_class("python::install") } # Base debian packages. it { is_expected.to contain_package("python") } it { is_expected.to contain_package("python-dev") } it { is_expected.to contain_package("python-pip") } # Basic python packages (from pip) it { is_expected.to contain_package("python-virtualenv")} describe "with python::dev" do context "true" do let (:params) {{ :dev => true }} it { is_expected.to contain_package("python-dev").with( "ensure" => "present") } end context "empty/default" do it { is_expected.to contain_package("python-dev").with( "ensure" => "absent") } end end describe "with manage_gunicorn" do context "true" do let (:params) {{ :manage_gunicorn => true }} it { is_expected.to contain_package("gunicorn") } end context "empty args" do #let (:params) {{ :manage_gunicorn => '' }} it { is_expected.to contain_package("gunicorn") } end context "false" do let (:params) {{ :manage_gunicorn => false }} it {is_expected.not_to contain_package("gunicorn")} end end describe "with python::provider" do context "pip" do let (:params) {{ :provider => 'pip' }} it { is_expected.to contain_package("virtualenv").with( "provider" => "pip" )} it { is_expected.to contain_package("pip").with( "provider" => "pip" )} end # python::provider context "default" do let (:params) {{ :provider => '' }} it { is_expected.to contain_package("python-virtualenv")} it { is_expected.to contain_package("python-pip")} describe "with python::virtualenv" do context "true" do let (:params) {{ :provider => '', :virtualenv => true }} it { is_expected.to contain_package("python-virtualenv").with( "ensure" => "present" )} end end describe "with python::virtualenv" do context "default/empty" do let (:params) {{ :provider => '', :virtualenv => '' }} it { is_expected.to contain_package("python-virtualenv").with( "ensure" => "absent" )} end end end end describe "with python::dev" do context "true" do let (:params) {{ :dev => true }} it { is_expected.to contain_package("python-dev").with( "ensure" => "present") } end context "default/empty" do let (:params) {{ :dev => '' }} it { is_expected.to contain_package("python-dev").with( "ensure" => "absent") } end end context "on a Redhat 5 OS" do let :facts do { :id => 'root', :kernel => 'Linux', :osfamily => 'RedHat', :operatingsystem => 'RedHat', :operatingsystemrelease => '5', :concat_basedir => '/dne', :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', } end it { is_expected.to contain_class("python::install") } # Base debian packages. it { is_expected.to contain_package("python") } it { is_expected.to contain_package("python-devel") } it { is_expected.to contain_package("python-pip") } # Basic python packages (from pip) it { is_expected.to contain_package("python-virtualenv")} describe "with python::dev" do context "true" do let (:params) {{ :dev => true }} it { is_expected.to contain_package("python-devel").with( "ensure" => "present") } end context "empty/default" do it { is_expected.to contain_package("python-devel").with( "ensure" => "absent") } end end describe "with manage_gunicorn" do context "true" do let (:params) {{ :manage_gunicorn => true }} it { is_expected.to contain_package("gunicorn") } end context "empty args" do #let (:params) {{ :manage_gunicorn => '' }} it { is_expected.to contain_package("gunicorn") } end context "false" do let (:params) {{ :manage_gunicorn => false }} it {is_expected.not_to contain_package("gunicorn")} end end describe "with python::provider" do context "pip" do let (:params) {{ :provider => 'pip' }} it { is_expected.to contain_package("virtualenv").with( "provider" => "pip" )} it { is_expected.to contain_package("pip").with( "provider" => "pip" )} end # python::provider context "default" do let (:params) {{ :provider => '' }} it { is_expected.to contain_package("python-virtualenv")} it { is_expected.to contain_package("python-pip")} describe "with python::virtualenv" do context "true" do let (:params) {{ :provider => '', :virtualenv => true }} it { is_expected.to contain_package("python-virtualenv").with( "ensure" => "present" )} end end describe "with python::virtualenv" do context "default/empty" do let (:params) {{ :provider => '', :virtualenv => '' }} it { is_expected.to contain_package("python-virtualenv").with( "ensure" => "absent" )} end end end end describe "with python::dev" do context "true" do let (:params) {{ :dev => true }} it { is_expected.to contain_package("python-devel").with( "ensure" => "present") } end context "default/empty" do let (:params) {{ :dev => '' }} it { is_expected.to contain_package("python-devel").with( "ensure" => "absent") } end end end end end