[DRE-commits] [schleuder] 11/52: New upstream version 3.0.0~beta11
Georg Faerber
georg-alioth-guest at moszumanska.debian.org
Mon Feb 6 11:21:19 UTC 2017
This is an automated email from the git hooks/post-receive script.
georg-alioth-guest pushed a commit to branch master
in repository schleuder.
commit 83189a2c4ddc0b0c072c615be0be4aa55e36201e
Author: Georg Faerber <georg at riseup.net>
Date: Wed Dec 7 18:22:17 2016 +0100
New upstream version 3.0.0~beta11
---
.travis.yml | 4 ++
CHANGELOG.md | 14 ++++++-
Gemfile.lock | 2 +-
README.md | 8 ++--
Rakefile | 43 +++++++++++++++++----
gems/schleuder-3.0.0.beta10.gem | Bin 0 -> 39424 bytes
gems/schleuder-3.0.0.beta10.gem.sig | Bin 0 -> 587 bytes
gems/schleuder-3.0.0.beta10.tar.gz | Bin 0 -> 688196 bytes
gems/schleuder-3.0.0.beta10.tar.gz.sig | Bin 0 -> 587 bytes
lib/schleuder.rb | 17 ++++----
lib/schleuder/cli.rb | 35 +++++++++--------
lib/schleuder/cli/cert.rb | 5 ++-
lib/schleuder/cli/schleuder_cert_manager.rb | 3 +-
lib/schleuder/list.rb | 32 ++++++++-------
lib/schleuder/list_builder.rb | 2 +-
lib/schleuder/listlogger.rb | 3 +-
lib/schleuder/mail/message.rb | 37 ++++++++++++++++--
lib/schleuder/version.rb | 2 +-
man/schleuder-api-daemon.8 | 3 ++
schleuder.gemspec | 2 +-
spec/gnupg/.gpg-v21-migrated | 0
.../0970A1A2A045304F53EF1810032DDC3F5418C7A7.key | Bin 0 -> 1874 bytes
.../3A013015E84C20C6A7A21C2CCF508FB81C9F50C1.key | Bin 0 -> 2529 bytes
spec/gnupg/pubring.gpg | Bin 0 -> 2225 bytes
spec/gnupg/pubring.gpg~ | Bin 0 -> 2225 bytes
spec/gnupg/random_seed | Bin 0 -> 600 bytes
spec/gnupg/secring.gpg | Bin 0 -> 4807 bytes
spec/gnupg/trustdb.gpg | Bin 0 -> 1360 bytes
spec/schleuder/list_spec.rb | 33 ++++++++++++++++
spec/spec_helper.rb | 4 ++
30 files changed, 188 insertions(+), 61 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 6eaad2b..872b3f4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,3 +11,7 @@ before_script:
- SCHLEUDER_ENV=test SCHLEUDER_CONFIG=spec/schleuder.yml bundle exec rake db:create db:schema:load
script:
- bundle exec rspec
+notifications:
+ email:
+ recipients:
+ - schleuder at nadir.org
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a3e84e8..67bd161 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,18 @@ This project adheres to [Semantic Versioning](http://semver.org/).
The format of this file is based on [Keep a Changelog](http://keepachangelog.com/).
-## [Unreleased]
+## [3.0.0.beta11] / 2016-12-07
+
+### Changed
+
+ * Fixed recognition and validation of clearsigned-inline messages.
+ * Fix log-file rotation (for list.log).
+ * Show hint to set `use_tls: true` after generation of certificate.
+
+### Added
+
+ * During installation, show error message and exit if data of an installation of schleuder-2.x is found in the configured lists_dir.
+ * More tests.
## [3.0.0.beta10] / 2016-12-05
@@ -14,6 +25,7 @@ The format of this file is based on [Keep a Changelog](http://keepachangelog.com
* Fixed tarball to contain correct version and state of changelog.
+
## [3.0.0.beta9] / 2016-12-02
### Added
diff --git a/Gemfile.lock b/Gemfile.lock
index 75fe78b..2a6e3b0 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
- schleuder (3.0.0.beta10)
+ schleuder (3.0.0.beta11)
activerecord (~> 4.1)
mail-gpg (~> 0.2.7)
rake (~> 10)
diff --git a/README.md b/README.md
index fe40393..4772bb4 100644
--- a/README.md
+++ b/README.md
@@ -42,15 +42,15 @@ Additionally these **rubygems** are required (will be installed automatically un
Installing Schleuder
------------
-1. Download [the gem](https://git.codecoop.org/schleuder/schleuder3/raw/master/gems/schleuder-3.0.0.beta10.gem) and [the OpenPGP-signature](https://git.codecoop.org/schleuder/schleuder3/raw/master/gems/schleuder-3.0.0.beta10.gem.sig) and verify:
+1. Download [the gem](https://git.codecoop.org/schleuder/schleuder3/raw/master/gems/schleuder-3.0.0.beta11.gem) and [the OpenPGP-signature](https://git.codecoop.org/schleuder/schleuder3/raw/master/gems/schleuder-3.0.0.beta11.gem.sig) and verify:
```
gpg --recv-key 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
- gpg --verify schleuder-3.0.0.beta10.gem.sig
+ gpg --verify schleuder-3.0.0.beta11.gem.sig
```
2. If all went well install the gem:
```
- gem install schleuder-3.0.0.beta10.gem
+ gem install schleuder-3.0.0.beta11.gem
```
3. Set up schleuder:
@@ -118,4 +118,4 @@ GNU GPL 3.0. Please see [LICENSE.txt](LICENSE.txt).
Alternative Download
--------------------
-Alternatively to the gem-files you can download the latest release as [a tarball](https://git.codecoop.org/schleuder/schleuder3/raw/master/gems/schleuder-3.0.0.beta10.tar.gz) and [its OpenPGP-signature](https://git.codecoop.org/schleuder/schleuder3/raw/master/gems/schleuder-3.0.0.beta10.tar.gz.sig).
+Alternatively to the gem-files you can download the latest release as [a tarball](https://git.codecoop.org/schleuder/schleuder3/raw/master/gems/schleuder-3.0.0.beta11.tar.gz) and [its OpenPGP-signature](https://git.codecoop.org/schleuder/schleuder3/raw/master/gems/schleuder-3.0.0.beta11.tar.gz.sig).
diff --git a/Rakefile b/Rakefile
index 85a7c24..0564fd5 100644
--- a/Rakefile
+++ b/Rakefile
@@ -19,6 +19,15 @@ end
# ActiveRecord requires this task to be present
Rake::Task.define_task("db:environment")
+def edit_and_add_file(filename)
+ puts "Please edit #{filename} to refer to version #{@version}"
+ if system("gvim -f #{filename}.md")
+ `git add #{filename}.md`
+ else
+ exit 1
+ end
+end
+
def move_sign_and_add(file)
`mv -iv #{file} gems/`
`cd gems && gpg -u #{@gpguid} -b #{file}`
@@ -33,17 +42,30 @@ task :publish_gem => :website
task :git_tag => :check_version
desc "Build new version: git-tag and gem-file"
-task :new_version => [:check_version, :edit_readme, :git_add_version, :gem, :tarball, :git_commit, :git_tag] do
+task :new_version => [
+ :check_version,
+ :edit_readme, :edit_changelog,
+ :git_add_version, :update_gemfile_lock,
+ :git_commit,
+ :gem, :tarball, :git_amend_gems,
+ :git_tag
+ ] do
+end
+
+desc "Edit CHANGELOG.md"
+task :edit_changelog do
+ edit_and_add_file('CHANGELOG')
end
desc "Edit README"
task :edit_readme do
- puts "Please edit the README to refer to version #{@version}"
- if system('gvim -f README.md')
- `git add README.md`
- else
- exit 1
- end
+ edit_and_add_file('README')
+end
+
+desc "Make sure the Gemfile.lock is up to date and added to the index"
+task :update_gemfile_lock do
+ `bundle install`
+ `git add Gemfile.lock`
end
desc 'git-tag HEAD as new version'
@@ -58,7 +80,12 @@ end
desc "Commit changes as new version"
task :git_commit do
- `git commit -m "Version #{@version} (README, gems)"`
+ `git commit -m "Version #{@version} (README, gems, ...)"`
+end
+
+desc "git-amend gem, tarball and signatures to previous commit"
+task :git_amend_gems do
+ `git add gems && git commit --amend -C HEAD`
end
desc 'Build, sign and commit a gem-file.'
diff --git a/gems/schleuder-3.0.0.beta10.gem b/gems/schleuder-3.0.0.beta10.gem
new file mode 100644
index 0000000..854ba83
Binary files /dev/null and b/gems/schleuder-3.0.0.beta10.gem differ
diff --git a/gems/schleuder-3.0.0.beta10.gem.sig b/gems/schleuder-3.0.0.beta10.gem.sig
new file mode 100644
index 0000000..5ef90e6
Binary files /dev/null and b/gems/schleuder-3.0.0.beta10.gem.sig differ
diff --git a/gems/schleuder-3.0.0.beta10.tar.gz b/gems/schleuder-3.0.0.beta10.tar.gz
new file mode 100644
index 0000000..6438a91
Binary files /dev/null and b/gems/schleuder-3.0.0.beta10.tar.gz differ
diff --git a/gems/schleuder-3.0.0.beta10.tar.gz.sig b/gems/schleuder-3.0.0.beta10.tar.gz.sig
new file mode 100644
index 0000000..2d927de
Binary files /dev/null and b/gems/schleuder-3.0.0.beta10.tar.gz.sig differ
diff --git a/lib/schleuder.rb b/lib/schleuder.rb
index fe097c6..ebec025 100644
--- a/lib/schleuder.rb
+++ b/lib/schleuder.rb
@@ -15,8 +15,9 @@ require 'active_record'
require 'hkp'
# Load schleuder
-rootdir = Pathname.new(__FILE__).dirname.dirname.realpath
-$:.unshift File.join(rootdir, 'lib')
+libdir = Pathname.new(__FILE__).dirname.realpath
+rootdir = libdir.dirname
+$:.unshift libdir
# Monkeypatches
require 'schleuder/mail/message.rb'
@@ -27,7 +28,7 @@ require 'schleuder/gpgme/ctx.rb'
# The Code[tm]
require 'schleuder/errors/base'
-Dir[rootdir.to_s + "/lib/schleuder/errors/*.rb"].each do |file|
+Dir["#{libdir}/schleuder/errors/*.rb"].each do |file|
require file
end
# Load schleuder/conf before the other classes, it defines constants!
@@ -37,14 +38,14 @@ require 'schleuder/logger_notifications'
require 'schleuder/logger'
require 'schleuder/listlogger'
require 'schleuder/plugins_runner'
-Dir[rootdir.to_s + "/lib/schleuder/plugins/*.rb"].each do |file|
+Dir["#{libdir}/schleuder/plugins/*.rb"].each do |file|
require file
end
require 'schleuder/filters_runner'
-Dir[rootdir.to_s + "/lib/schleuder/filters/*.rb"].each do |file|
+Dir["#{libdir}/schleuder/filters/*.rb"].each do |file|
require file
end
-Dir[rootdir.to_s + "/lib/schleuder/validators/*.rb"].each do |file|
+Dir["#{libdir}/schleuder/validators/*.rb"].each do |file|
require file
end
require 'schleuder/runner'
@@ -71,8 +72,10 @@ Mail.defaults do
delivery_method :smtp, Schleuder::Conf.smtp_settings.symbolize_keys
end
-I18n.load_path += Dir[rootdir.to_s + "/locales/*.yml"]
+I18n.load_path += Dir["#{rootdir}/locales/*.yml"]
I18n.enforce_available_locales = true
I18n.default_locale = :en
+File.umask(0027)
+
include Schleuder
diff --git a/lib/schleuder/cli.rb b/lib/schleuder/cli.rb
index 7a3ebe7..6ec91d0 100644
--- a/lib/schleuder/cli.rb
+++ b/lib/schleuder/cli.rb
@@ -68,13 +68,20 @@ module Schleuder
config_dir = Pathname.new(ENV['SCHLEUDER_CONFIG']).dirname
root_dir = Pathname.new(ENV['SCHLEUDER_ROOT'])
+ # Check if lists_dir contains v2-data.
+ if Dir.glob("#{Conf.lists_dir}/*/*/members.conf").size > 0
+ msg = "Lists directory #{Conf.lists_dir} appears to contain data from a Schleuder version 2.x installation.\nPlease move it out of the way or configure a different `lists_dir` in `#{ENV['SCHLEUDER_CONFIG']}`.\nTo migrate lists from Schleuder v2 to Schleuder v3 please use `schleuder migrate_v2_list` after the installation succeeded."
+ fatal msg, 2
+ end
+
[Conf.lists_dir, config_dir].each do |dir|
dir = Pathname.new(dir)
if ! dir.exist?
- if dir.dirname.writable?
+ begin
dir.mkpath
- else
- fatal "Cannot create required directory due to lacking write permissions, please create manually and then run this command again:\n#{dir}"
+ rescue Errno::EACCES => exc
+ problem_dir = exc.message.split(' - ').last
+ fatal "Cannot create required directory due to lacking write permissions: #{problem_dir}.\nPlease fix the permissions or create the directory manually and then run this command again."
end
end
end
@@ -90,22 +97,14 @@ module Schleuder
end
end
- chmod_files = [
- ENV['SCHLEUDER_CONFIG'],
- ENV['SCHLEUDER_LIST_DEFAULTS'],
- Conf.lists_dir
- ]
- if Conf.database['adapter'].match(/sqlite/)
- chmod_files << Conf.database['database']
- end
-
- FileUtils.chmod_R('o-rwx', chmod_files)
if ActiveRecord::SchemaMigration.table_exists?
say `cd #{root_dir} && rake db:migrate`
else
say `cd #{root_dir} && rake db:schema:load`
- say "NOTE: The database was prepared using sqlite. If you prefer to use a different DBMS please edit the 'database'-section in /etc/schleuder/schleuder.yml, create the database, install the corresponding ruby-library (e.g. `gem install mysql`) and run this current command again"
+ if Conf.database['adapter'].match(/sqlite/)
+ say "NOTE: The database was prepared using sqlite. If you prefer to use a different DBMS please edit the 'database'-section in /etc/schleuder/schleuder.yml, create the database, install the corresponding ruby-library (e.g. `gem install mysql`) and run this current command again"
+ end
end
say "Schleuder has been set up. You can now create a new list using `schleuder-cli`.\nWe hope you enjoy!"
@@ -228,9 +227,9 @@ Please notify the users and admins of this list of these changes.
end
no_commands do
- def fatal(msg)
+ def fatal(msg, exitcode=1)
error("Error: #{msg}")
- exit 1
+ exit exitcode
end
KEYWORDS = {
@@ -253,6 +252,10 @@ Please notify the users and admins of this list of these changes.
KEYWORDS[keyword.downcase]
end.compact
end
+
+ def chmod(file)
+ FileUtils.chmod_R('o-rwx', file)
+ end
end
end
end
diff --git a/lib/schleuder/cli/cert.rb b/lib/schleuder/cli/cert.rb
index 5974aad..2b98ad1 100644
--- a/lib/schleuder/cli/cert.rb
+++ b/lib/schleuder/cli/cert.rb
@@ -6,7 +6,10 @@ module Schleuder
def generate
key = Conf.api['tls_key_file']
cert = Conf.api['tls_cert_file']
- SchleuderCertManager.generate('schleuder', key, cert)
+ fingerprint = SchleuderCertManager.generate('schleuder', key, cert)
+ puts "Fingerprint of generated certificate: #{fingerprint}"
+ puts "Have this fingerprint included into the configuration-file of all clients that want to connect to your Schleuder API."
+ puts "To activate TLS set `use_tls: true` in #{ENV['SCHLEUDER_CONFIG']} and restart schleuder-api-daemon."
end
desc 'fingerprint', 'Show fingerprint of configured certificate.'
diff --git a/lib/schleuder/cli/schleuder_cert_manager.rb b/lib/schleuder/cli/schleuder_cert_manager.rb
index 68e3fe4..0cf203f 100644
--- a/lib/schleuder/cli/schleuder_cert_manager.rb
+++ b/lib/schleuder/cli/schleuder_cert_manager.rb
@@ -43,8 +43,7 @@ class SchleuderCertManager
end
puts "Certificate written to: #{filename_cert}"
- puts "Fingerprint of generated certificate: #{fingerprint(cert)}"
- puts "Have this fingerprint included into the configuration-file of all clients that want to connect to your Schleuder API."
+ fingerprint(cert)
rescue => exc
error exc.message
end
diff --git a/lib/schleuder/list.rb b/lib/schleuder/list.rb
index 212ad6e..4d7a087 100644
--- a/lib/schleuder/list.rb
+++ b/lib/schleuder/list.rb
@@ -189,7 +189,7 @@ module Schleuder
@gpg_ctx ||= begin
# TODO: figure out why set it again...
# Set GNUPGHOME when list is created.
- ENV['GNUPGHOME'] = listdir
+ set_gnupg_home
GPGME::Ctx.new armor: true
end
end
@@ -277,19 +277,25 @@ module Schleuder
private
- def delete_listdir
- if File.exists?(self.listdir)
- FileUtils.rm_r(self.listdir, secure: true)
- Schleuder.logger.info "Deleted listdir"
- else
- # Don't use list-logger here — if the list-dir isn't present we can't log to it!
- Schleuder.logger.info "Couldn't delete listdir, directly not present"
- end
- true
- rescue => exc
+ def set_gnupg_home
+ if ENV["SCHLEUDER_ENV"] != "test"
+ ENV['GNUPGHOME'] = listdir
+ end
+ end
+
+ def delete_listdir
+ if File.exists?(self.listdir)
+ FileUtils.rm_r(self.listdir, secure: true)
+ Schleuder.logger.info "Deleted listdir"
+ else
# Don't use list-logger here — if the list-dir isn't present we can't log to it!
- Schleuder.logger.error "Error while deleting listdir: #{exc}"
- return false
+ Schleuder.logger.info "Couldn't delete listdir, directly not present"
end
+ true
+ rescue => exc
+ # Don't use list-logger here — if the list-dir isn't present we can't log to it!
+ Schleuder.logger.error "Error while deleting listdir: #{exc}"
+ return false
+ end
end
end
diff --git a/lib/schleuder/list_builder.rb b/lib/schleuder/list_builder.rb
index f1b5591..f6cb195 100644
--- a/lib/schleuder/list_builder.rb
+++ b/lib/schleuder/list_builder.rb
@@ -144,7 +144,7 @@ module Schleuder
raise Errors::ListdirProblem.new(@list_dir, :not_writable)
end
else
- FileUtils.mkdir_p(@list_dir, mode: 0700)
+ FileUtils.mkdir_p(@list_dir)
end
end
diff --git a/lib/schleuder/listlogger.rb b/lib/schleuder/listlogger.rb
index 8c4f281..67939cd 100644
--- a/lib/schleuder/listlogger.rb
+++ b/lib/schleuder/listlogger.rb
@@ -2,8 +2,7 @@ module Schleuder
class Listlogger < ::Logger
include LoggerNotifications
def initialize(list)
- file = File.open(list.logfile, File::WRONLY | File::APPEND | File::CREAT, 0640)
- super(file, 'daily')
+ super(list.logfile, 'daily')
@from = list.email
@adminaddresses = list.admins.map(&:email)
@level = ::Logger.const_get(list.log_level.upcase)
diff --git a/lib/schleuder/mail/message.rb b/lib/schleuder/mail/message.rb
index 8b59225..e87161f 100644
--- a/lib/schleuder/mail/message.rb
+++ b/lib/schleuder/mail/message.rb
@@ -49,7 +49,11 @@ module Mail
clean.add_part Mail::Part.new(part)
end
else
- clean.add_part Mail::Part.new(self.body)
+ # Don't use self.to_s here — that includes all the headers we *don't*
+ # want to copy.
+ new_part = Mail::Part.new
+ new_part.body = self.body.to_s
+ clean.add_part Mail::Part.new(new_part)
end
clean
end
@@ -64,8 +68,18 @@ module Mail
end
def signature
- # Theoretically there might be more than one signing key, in practice this is neglectable.
- signatures.try(:first)
+ case signatures.size
+ when 0
+ if multipart?
+ signature_multipart_inline
+ else
+ nil
+ end
+ when 1
+ signatures.first
+ else
+ raise "Multiple signatures found! Cannot handle!"
+ end
end
def was_validly_signed?
@@ -279,6 +293,23 @@ module Mail
private
+ # Looking for signatures in each part. They are not aggregated into the main part.
+ # We only return the signature if all parts are validly signed by the same key.
+ def signature_multipart_inline
+ fingerprints = parts.map do |part|
+ if part.signature_valid?
+ part.signature.fpr
+ else
+ nil
+ end
+ end
+ if fingerprints.uniq.size == 1
+ parts.first.signature
+ else
+ nil
+ end
+ end
+
def first_plaintext_part(part=nil)
part ||= self
if part.multipart?
diff --git a/lib/schleuder/version.rb b/lib/schleuder/version.rb
index c93e884..42395d1 100644
--- a/lib/schleuder/version.rb
+++ b/lib/schleuder/version.rb
@@ -1,3 +1,3 @@
module Schleuder
- VERSION = '3.0.0.beta10'
+ VERSION = '3.0.0.beta11'
end
diff --git a/man/schleuder-api-daemon.8 b/man/schleuder-api-daemon.8
index c7170df..74f12ec 100644
--- a/man/schleuder-api-daemon.8
+++ b/man/schleuder-api-daemon.8
@@ -3,6 +3,9 @@
.
.TH "SCHLEUDER\-API\-DAEMON" "8" "November 2016" "" ""
.
+.SH "NAME"
+\fBschleuder\-api\-daemon\fR \- HTTP\-API of Schleuder(8)
+.
.SH "SYNOPSIS"
\fBschleuder\-api\-daemon\fR
.
diff --git a/schleuder.gemspec b/schleuder.gemspec
index 708f686..a7fcf1b 100644
--- a/schleuder.gemspec
+++ b/schleuder.gemspec
@@ -33,7 +33,7 @@ Gem::Specification.new do |s|
s.add_development_dependency 'database_cleaner'
s.post_install_message = "
- Please consider additionallly installing schleuder-cli (allows to
+ Please consider additionally installing schleuder-cli (allows to
configure lists from the command line).
To set up Schleuder on this system please run `schleuder install`.
diff --git a/spec/gnupg/.gpg-v21-migrated b/spec/gnupg/.gpg-v21-migrated
new file mode 100644
index 0000000..e69de29
diff --git a/spec/gnupg/private-keys-v1.d/0970A1A2A045304F53EF1810032DDC3F5418C7A7.key b/spec/gnupg/private-keys-v1.d/0970A1A2A045304F53EF1810032DDC3F5418C7A7.key
new file mode 100644
index 0000000..845bc0d
Binary files /dev/null and b/spec/gnupg/private-keys-v1.d/0970A1A2A045304F53EF1810032DDC3F5418C7A7.key differ
diff --git a/spec/gnupg/private-keys-v1.d/3A013015E84C20C6A7A21C2CCF508FB81C9F50C1.key b/spec/gnupg/private-keys-v1.d/3A013015E84C20C6A7A21C2CCF508FB81C9F50C1.key
new file mode 100644
index 0000000..1629318
Binary files /dev/null and b/spec/gnupg/private-keys-v1.d/3A013015E84C20C6A7A21C2CCF508FB81C9F50C1.key differ
diff --git a/spec/gnupg/pubring.gpg b/spec/gnupg/pubring.gpg
new file mode 100644
index 0000000..45575bb
Binary files /dev/null and b/spec/gnupg/pubring.gpg differ
diff --git a/spec/gnupg/pubring.gpg~ b/spec/gnupg/pubring.gpg~
new file mode 100644
index 0000000..7738906
Binary files /dev/null and b/spec/gnupg/pubring.gpg~ differ
diff --git a/spec/gnupg/random_seed b/spec/gnupg/random_seed
new file mode 100644
index 0000000..314535b
Binary files /dev/null and b/spec/gnupg/random_seed differ
diff --git a/spec/gnupg/secring.gpg b/spec/gnupg/secring.gpg
new file mode 100644
index 0000000..ed4f93c
Binary files /dev/null and b/spec/gnupg/secring.gpg differ
diff --git a/spec/gnupg/trustdb.gpg b/spec/gnupg/trustdb.gpg
new file mode 100644
index 0000000..643c054
Binary files /dev/null and b/spec/gnupg/trustdb.gpg differ
diff --git a/spec/schleuder/list_spec.rb b/spec/schleuder/list_spec.rb
index db2762d..6a83e0b 100644
--- a/spec/schleuder/list_spec.rb
+++ b/spec/schleuder/list_spec.rb
@@ -297,4 +297,37 @@ describe Schleuder::List do
expect(list.email).to eq "foo at bar.org"
end
end
+
+ describe "#admins" do
+ it "returns subscriptions of admin users" do
+ list = Schleuder::List.create(
+ email: "foo at bar.org",
+ fingerprint: "aaaadddd0000999",
+ )
+ admin_subscription = Schleuder::Subscription.create(
+ email: "admin at foo.org",
+ admin: true,
+ list_id: list.id,
+ )
+ _user_subscription = Schleuder::Subscription.create(
+ email: "user at foo.org",
+ admin: false,
+ list_id: list.id,
+ )
+
+ expect(list.admins).to eq [admin_subscription]
+ end
+ end
+
+ describe "#key" do
+ it "returns the key with the fingerprint of the list" do
+ set_test_gnupg_home
+ list = Schleuder::List.create(
+ email: "foo at bar.org",
+ fingerprint: "59C7 1FB3 8AEE 22E0 91C7 8259 D063 5044 0F75 9BD3",
+ )
+
+ expect(list.key.fingerprint()).to eq "59C71FB38AEE22E091C78259D06350440F759BD3"
+ end
+ end
end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 79f8972..74454a6 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -38,4 +38,8 @@ RSpec.configure do |config|
# `true` in RSpec 4.
mocks.verify_partial_doubles = true
end
+
+ def set_test_gnupg_home
+ ENV["GNUPGHOME"] = "spec/gnupg"
+ end
end
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/schleuder.git
More information about the Pkg-ruby-extras-commits
mailing list