Skip to content
This repository was archived by the owner on Jan 23, 2019. It is now read-only.

Commit c5b50c5

Browse files
committed
Merge pull request #143 from phlipper/language-updates
Add more explicit test support for languages and extensions
2 parents 6a3d85c + dcb44b7 commit c5b50c5

File tree

11 files changed

+176
-16
lines changed

11 files changed

+176
-16
lines changed

.kitchen.yml

Lines changed: 127 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ platforms:
1313
- name: ubuntu-14.04
1414

1515
suites:
16-
<% %w[9.3 9.4].each do |version| %>
17-
- name: server_<%= version.tr(".", "") %>
16+
- name: server_93
1817
run_list:
1918
- recipe[apt]
2019
- recipe[postgresql::server]
@@ -26,7 +25,7 @@ suites:
2625
- recipe[minitest-handler]
2726
attributes:
2827
postgresql:
29-
version: <%= version %>
28+
version: "9.3"
3029
users:
3130
- username: testuser
3231
password: s3kr1t
@@ -39,12 +38,137 @@ suites:
3938
locale: en_US.UTF8
4039
# postgis: true
4140
extensions:
41+
- adminpack
42+
- autoinc
43+
- btree_gin
44+
- btree_gist
45+
- chkpass
46+
- citext
47+
- cube
48+
- dblink
49+
- dict_int
50+
- dict_xsyn
51+
- earthdistance
52+
- file_fdw
53+
- fuzzystrmatch
4254
- hstore
55+
- insert_username
56+
- intarray
57+
- isn
58+
- lo
59+
- ltree
60+
- moddatetime
61+
- pageinspect
62+
- pg_buffercache
63+
- pg_freespacemap
64+
- pg_stat_statements
65+
- pg_trgm
4366
- pgcrypto
67+
- pgrowlocks
68+
- pgstattuple
69+
- postgres_fdw
70+
- seg
71+
- sslinfo
72+
- tablefunc
73+
- tcn
74+
- test_parser
75+
- timetravel
76+
- tsearch2
77+
- unaccent
78+
- xml2
4479
languages:
80+
- pllua
4581
- plpgsql
4682
- plperl
83+
- plproxy
4784
- plpython3
85+
- plr
86+
- plsh
87+
- pltcl
88+
extensions:
89+
- name: dblink
90+
database: testdb
91+
- name: uuid-ossp
92+
database: testdb
93+
languages:
94+
- name: plpython
95+
database: testdb
96+
- name: plv8
97+
database: testdb
98+
- name: server_94
99+
run_list:
100+
- recipe[apt]
101+
- recipe[postgresql::server]
102+
- recipe[postgresql::client]
103+
- recipe[postgresql::dbg]
104+
- recipe[postgresql::doc]
105+
- recipe[postgresql::libpq]
106+
- recipe[postgresql::server_dev]
107+
- recipe[minitest-handler]
108+
attributes:
109+
postgresql:
110+
version: "9.4"
111+
users:
112+
- username: testuser
113+
password: s3kr1t
114+
login: true
115+
databases:
116+
- name: testdb
117+
owner: testuser
118+
template: template0
119+
encoding: utf8
120+
locale: en_US.UTF8
121+
# postgis: true
122+
extensions:
123+
- adminpack
124+
- autoinc
125+
- btree_gin
126+
- btree_gist
127+
- chkpass
128+
- citext
129+
- cube
130+
- dict_int
131+
- dict_xsyn
132+
- earthdistance
133+
- file_fdw
134+
- fuzzystrmatch
135+
- hstore
136+
- insert_username
137+
- intagg
138+
- intarray
139+
- isn
140+
- lo
141+
- ltree
142+
- moddatetime
143+
- pageinspect
144+
- pg_buffercache
145+
- pg_freespacemap
146+
- pg_prewarm
147+
- pg_stat_statements
148+
- pg_trgm
149+
- pgcrypto
150+
- pgrowlocks
151+
- pgstattuple
152+
- postgres_fdw
153+
- refint
154+
- seg
155+
- sslinfo
156+
- tablefunc
157+
- tcn
158+
- test_parser
159+
- test_shm_mq
160+
- timetravel
161+
- tsearch2
162+
- unaccent
163+
- worker_spi
164+
- xml2
165+
languages:
166+
- plpgsql
167+
- plperl
168+
- plproxy
169+
- plpython3
170+
- plr
171+
# - plsh
48172
- pltcl
49173
extensions:
50174
- name: dblink
@@ -56,4 +180,3 @@ suites:
56180
database: testdb
57181
- name: plv8
58182
database: testdb
59-
<% end %>

.rubocop.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
AllCops:
2+
Exclude:
3+
- ".bundle/**/*"
4+
- "vendor/**/*"
5+
16
LineLength:
27
Max: 80
38
Exclude:

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ sudo: false
99
before_script:
1010
- "gem install bundler-audit --no-rdoc --no-ri && bundle-audit update"
1111
script:
12-
- bundle-audit
12+
- bundle-audit check --ignore OSVDB-117461
1313
- bundle exec rake license_finder
1414
- bundle exec rake rubocop
1515
- bundle exec rake foodcritic

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ gem "berkshelf", "~> 3.2.3"
77
gem "foodcritic", "~> 4.0.0"
88
gem "license_finder", "~> 1.2.0"
99
gem "rake", "~> 10.4.0"
10-
gem "rubocop", "~> 0.28.0"
10+
gem "rubocop", "~> 0.29.1"
1111
gem "serverspec", "~> 2.8.0"
1212

1313
group :integration do

README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -630,13 +630,11 @@ default["postgis"]["version"] = "2.0"
630630
```
631631
postgresql-{version}-ip4r
632632
postgresql-{version}-pgq3
633-
postgresql-{version}-plsh
634633
postgresql-{version}-pgmp
635634
postgresql-{version}-plproxy
636635
postgresql-{version}-repmgr
637636
postgresql-{version}-debversion
638637
postgresql-{version}-pgpool2
639-
postgresql-{version}-plr
640638
postgresql-{version}-slony1-2
641639
```
642640

metadata.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@
2828
supports "ubuntu"
2929
supports "debian"
3030

31-
depends "apt", ">= 1.9.0"
31+
depends "apt", ">= 2.6.1"
3232
suggests "minitest-handler"

providers/language.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,15 @@ def control_file_name_for_language(language)
7676
control_file_map.fetch(language) { |key| key }
7777
end
7878

79-
def language_package_map
79+
def language_package_map # rubocop:disable Metrics/MethodLength
8080
{
81+
"pllua" => "postgresql-#{pg_version}-pllua",
8182
"plperl" => "postgresql-plperl-#{pg_version}",
83+
"plproxy" => "postgresql-#{pg_version}-plproxy",
8284
"plpython" => "postgresql-plpython-#{pg_version}",
8385
"plpython3" => "postgresql-plpython3-#{pg_version}",
86+
"plr" => "postgresql-#{pg_version}-plr",
87+
"plsh" => "postgresql-#{pg_version}-plsh",
8488
"pltcl" => "postgresql-pltcl-#{pg_version}",
8589
"plv8" => "postgresql-#{pg_version}-plv8"
8690
}

recipes/default.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55

66
# pin default package preferences
7-
apt_preference "pgdg.pref" do
7+
apt_preference "pgdg" do
88
glob "*"
99
pin "release o=apt.postgresql.org"
1010
pin_priority "750"

spec/default_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
end
77

88
it "adds an apt preference" do
9-
expect(chef_run).to add_apt_preference("pgdg.pref")
9+
expect(chef_run).to add_apt_preference("pgdg")
1010
end
1111

1212
it "sets up an apt repository" do

test/integration/server_93/serverspec/localhost/default_server_spec.rb

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,23 +76,38 @@
7676
its(:exit_status) { should eq 1 }
7777
end
7878

79-
%w[dblink hstore pgcrypto uuid-ossp].each do |extension|
79+
installed_extensions = %w[
80+
adminpack autoinc btree_gin btree_gist chkpass citext cube dblink dict_int
81+
dict_xsyn earthdistance file_fdw fuzzystrmatch hstore insert_username
82+
intarray isn lo ltree moddatetime pageinspect pg_buffercache pg_freespacemap
83+
pg_stat_statements pg_trgm pgcrypto pgrowlocks pgstattuple postgres_fdw seg
84+
sslinfo tablefunc tcn test_parser timetravel tsearch2 unaccent uuid-ossp
85+
xml2
86+
]
87+
installed_extensions.each do |extension|
8088
describe command(cmd_extension_exists("testdb", extension)) do
89+
its(:stdout) { should match(extension) }
8190
its(:exit_status) { should eq 0 }
8291
end
8392
end
8493

8594
describe command(cmd_extension_exists("testdb", "fake_extension")) do
95+
its(:stdout) { should_not match("fake_extension") }
8696
its(:exit_status) { should eq 1 }
8797
end
8898

89-
%w[plpgsql plperl plpythonu plpython3u pltcl plv8].each do |language|
99+
installed_languages = %w[
100+
plpgsql pllua plperl plproxy plpythonu plpython3u plr plsh pltcl plv8
101+
]
102+
installed_languages.each do |language|
90103
describe command(cmd_language_exists("testdb", language)) do
104+
its(:stdout) { should match(language) }
91105
its(:exit_status) { should eq 0 }
92106
end
93107
end
94108

95109
describe command(cmd_language_exists("testdb", "fake_language")) do
110+
its(:stdout) { should_not match("fake_language") }
96111
its(:exit_status) { should eq 1 }
97112
end
98113
end

0 commit comments

Comments
 (0)