発端
serverspecでテスト書いている時に、servserspecのマニュアルにはyumrepoを使えば、
describe yumrepo('epel') do
it { should exist }
it { should be_enabled }
end
のような書き方ができるのに、
ppa('launchpad-username/ppa-name')
のような書き方が出来ないじゃん!
ということで書けるようにしてみた。
送ったPR
specinfraのリポジトリには specinfra pull#117 により、泥くさく/etc/apt
の下にppaのsource.listが置かれてないか調べるメソッドを追加した。
serverspecのリポジトリには serverspec pull#407 により、yumrepoと同じようなspecが書けるようにした。
specinfra pull#121 により、ppa:
があってもなくてもapt-lineにあったURIに変換されるようになってます。
Resource Type: ppa の書き方
例えば、Ubuntu向けの比較的新しいRubyのパッケージを提供するPPAのhttps://launchpad.net/~brightbox/+archive/ruby-ng 向けのspecは次のようになる。
ppa:brightbox/ruby-ng
か brightbox/ruby-ng
の形式で渡す:
describe ppa('ppa:brightbox/ruby-ng') do
it { should exist }
it { should be_enabled }
end
これでUbuntuのPPAがaptリポジトリに追加されている&有効になっているかをテストするserverspecが書けるようになります。
enjoy serverspec!