moodleQuizDownloader 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,127 @@
1
+ require_relative '../lib/moodleQuizDownloader/option_handler.rb'
2
+ describe OptionHandler do
3
+ before do
4
+ @option_handler = OptionHandler.new
5
+ end
6
+ it "prints a usage message if no arguments given" do
7
+ option_handler = OptionHandler.new
8
+ expect(option_handler.usage).to include("Usage")
9
+ end
10
+ it "has a verbose option" do
11
+ option_handler = OptionHandler.new(["--verbose"])
12
+ options = option_handler.options
13
+ expect(options.verbose).to be_true
14
+ end
15
+ it "has a smoketest option" do
16
+ args = "--user drblinken -p geheim download connect"
17
+ options = OptionHandler.new(args.split(" ")).options
18
+ expect(options.command).to eq(:connect)
19
+ end
20
+ it "accepts only valid commands" do
21
+ args = "--user drblinken -p geheim dosomethingelse"
22
+ options = OptionHandler.new(args.split(" ")).options
23
+ expect(options.command).to eq(:list)
24
+ expect(options.usage).not_to be_nil
25
+ end
26
+ describe "reads username" do
27
+ it "from option -u" do
28
+ args = "download -u drblinken -p geheim download"
29
+ options = OptionHandler.new(args.split(" ")).options
30
+ expect(options.moodle_username).to eq('drblinken')
31
+ end
32
+ it "from option --user" do
33
+ args = "--user drblinken -p geheim download"
34
+ options = OptionHandler.new(args.split(" ")).options
35
+ expect(options.moodle_username).to eq('drblinken')
36
+ end
37
+ it "from ENV variable as default" do
38
+ ENV['MOODLE_USERNAME'] = 'userfromshell'
39
+ args = "-p geheim download"
40
+ options = OptionHandler.new(args.split(" ")).options
41
+ expect(options.moodle_username).to eq('userfromshell')
42
+
43
+ end
44
+ it "ENV default is overwritten by setting" do
45
+ ENV['MOODLE_USERNAME'] = 'userfromshell'
46
+ args = "-u drblinken -p geheim download"
47
+ options = OptionHandler.new(args.split(" ")).options
48
+ expect(options.moodle_username).to eq('drblinken')
49
+ end
50
+ end
51
+ it "takes the password" do
52
+ args = "-u drblinken -p geheim download"
53
+ options = OptionHandler.new(args.split(" ")).options
54
+ expect(options.moodle_password).to eq('geheim')
55
+ end
56
+ it "finds the command list among the options" do
57
+ args= "-u drblinken list -p password"
58
+ option_handler = OptionHandler.new(args.split(" "))
59
+ options = option_handler.options
60
+ expect(options.command).to be(:list)
61
+ end
62
+ it "finds the command 'download' among the options" do
63
+ args = "-u drblinken -p geheim download -b"
64
+ options = OptionHandler.new(args.split(" ")).options
65
+ expect(options.command).to be(:download)
66
+ end
67
+ it "command can also be at the beginning" do
68
+ args = "download -u drblinken -p geheim -b"
69
+ options = OptionHandler.new(args.split(" ")).options
70
+ expect(options.command).to be(:download)
71
+ end
72
+ it "--version overrides command" do
73
+ args = "download -v"
74
+ options = OptionHandler.new(args.split(" ")).options
75
+ expect(options.command).to be(:version)
76
+ end
77
+ it "takes the exam_id" do
78
+ args = "-e 4711 download -u drblinken -p geheim -b"
79
+ options = OptionHandler.new(args.split(" ")).options
80
+ expect(options.exam_id).to eq('4711')
81
+ end
82
+ describe "outputdir" do
83
+ it "read from -o" do
84
+ args = "-e 4711 download -o /tmp/bla -u drblinken -p geheim -b"
85
+ options = OptionHandler.new(args.split(" ")).options
86
+ expect(options.outputdir).to eq('/tmp/bla')
87
+ end
88
+ it "defaults to out" do
89
+ args = "-e 4711 download -u drblinken -p geheim -b"
90
+ options = OptionHandler.new(args.split(" ")).options
91
+ expect(options.outputdir).to eq('out')
92
+ end
93
+ end
94
+ describe "server" do
95
+ it "from option -s" do
96
+ args = "-s http://moodle2.htw-berlin.de download -u drblinken -p geheim download"
97
+ options = OptionHandler.new(args.split(" ")).options
98
+ expect(options.moodle_server).to eq('http://moodle2.htw-berlin.de')
99
+ end
100
+ it "from option --server" do
101
+ args = "--server http://moodle2.htw-berlin.de --user drblinken -p geheim download"
102
+ options = OptionHandler.new(args.split(" ")).options
103
+ expect(options.moodle_server).to eq('http://moodle2.htw-berlin.de')
104
+ end
105
+ it "from ENV variable as default" do
106
+ ENV['MOODLE_SERVER'] = 'http://moodle2.htw-berlin.de'
107
+ args = "-p geheim download"
108
+ options = OptionHandler.new(args.split(" ")).options
109
+ expect(options.moodle_server).to eq('http://moodle2.htw-berlin.de')
110
+ end
111
+ end
112
+
113
+ describe "validates" do
114
+ it "all settings" do
115
+ args = ""
116
+ options = OptionHandler.new(args.split(" ")).parse
117
+ expect(options.usage).not_to be_nil
118
+ expect(options.usage).to include("server")
119
+ end
120
+ it "all settings given" do
121
+ args = "-u drblinken -p geheim -s http://x.y -e 311"
122
+ options = OptionHandler.new(args.split(" ")).parse
123
+ expect(options.usage).to be_nil
124
+ end
125
+
126
+ end
127
+ end
metadata ADDED
@@ -0,0 +1,175 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: moodleQuizDownloader
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Dr Blinken
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-06-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: asciify
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: iconv
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mechanize
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pdfkit
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '1.3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '1.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Downloads Quizzes from Moodle as PDF
112
+ email:
113
+ - drblinken@gmail.com
114
+ executables:
115
+ - moodleQuizDownloader.rb
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - .gitignore
120
+ - Gemfile
121
+ - LICENSE.txt
122
+ - README.md
123
+ - Rakefile
124
+ - bin/moodleQuizDownloader.rb
125
+ - lib/moodleQuizDownloader.rb
126
+ - lib/moodleQuizDownloader/file_name_creator.rb
127
+ - lib/moodleQuizDownloader/moodle_parser.rb
128
+ - lib/moodleQuizDownloader/option_handler.rb
129
+ - lib/moodleQuizDownloader/quiz_downloader.rb
130
+ - lib/moodleQuizDownloader/version.rb
131
+ - moodleQuizDownloader.gemspec
132
+ - spec/api/asciify_spec.rb
133
+ - spec/api/pdfkit_spec.rb
134
+ - spec/fileNameCreator_spec.rb
135
+ - spec/moodleparsing/exam-overview-moodle-ss2013.html
136
+ - spec/moodleparsing/exam-overview.html
137
+ - spec/moodleparsing/moodleparsing_spec.rb
138
+ - spec/moodleparsing/review-page-nutzerbild.html
139
+ - spec/moodleparsing/review-page.html
140
+ - spec/option_handler_spec.rb
141
+ homepage: https://github.com/drblinken/moodleQuizDownloader
142
+ licenses:
143
+ - MIT
144
+ metadata: {}
145
+ post_install_message:
146
+ rdoc_options: []
147
+ require_paths:
148
+ - lib
149
+ required_ruby_version: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ required_rubygems_version: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ requirements: []
160
+ rubyforge_project:
161
+ rubygems_version: 2.0.3
162
+ signing_key:
163
+ specification_version: 4
164
+ summary: This is a little ruby command line tool that hooks to a moodle server and
165
+ downloads all attempts for an exam as pdfs.
166
+ test_files:
167
+ - spec/api/asciify_spec.rb
168
+ - spec/api/pdfkit_spec.rb
169
+ - spec/fileNameCreator_spec.rb
170
+ - spec/moodleparsing/exam-overview-moodle-ss2013.html
171
+ - spec/moodleparsing/exam-overview.html
172
+ - spec/moodleparsing/moodleparsing_spec.rb
173
+ - spec/moodleparsing/review-page-nutzerbild.html
174
+ - spec/moodleparsing/review-page.html
175
+ - spec/option_handler_spec.rb