potam 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rspec +1 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +52 -0
- data/README.rdoc +6 -0
- data/Rakefile +44 -0
- data/bin/potam +89 -0
- data/db/old.db +0 -0
- data/db/old2.db +0 -0
- data/db/potam.db +0 -0
- data/features/addnote.feature +26 -0
- data/features/addtask.feature +26 -0
- data/features/listtasks.feature +66 -0
- data/features/potam.feature +8 -0
- data/features/report.feature +58 -0
- data/features/step_definitions/potam_steps.rb +43 -0
- data/features/subtasks.feature +31 -0
- data/features/support/env.rb +27 -0
- data/features/taskinfo.feature +128 -0
- data/lib/db.rb +56 -0
- data/lib/dialog.rb +91 -0
- data/lib/notes.rb +3 -0
- data/lib/potam/version.rb +3 -0
- data/lib/potam.rb +9 -0
- data/lib/report.rb +48 -0
- data/lib/subtasks.rb +11 -0
- data/lib/tasks.rb +19 -0
- data/lib/timer.rb +12 -0
- data/potam.gemspec +23 -0
- data/potam.rdoc +5 -0
- data/results.html +480 -0
- data/spec/db_spec.rb +87 -0
- data/spec/notes_spec.rb +68 -0
- data/spec/report_spec.rb +89 -0
- data/spec/spec_helper.rb +5 -0
- data/spec/subtasks_spec.rb +74 -0
- data/spec/tasks_spec.rb +86 -0
- data/spec/timer_spec.rb +31 -0
- data/test/clean.db +0 -0
- data/test/default_test.rb +14 -0
- data/test/test.db +0 -0
- data/test/test_helper.rb +9 -0
- metadata +148 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0e5b8b6e8648eddbe1b0daefb26d744b0559176d
|
4
|
+
data.tar.gz: 653d9de5244d7a6981e4759d695a2a53bb893459
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 92d92fb32832ae3e152b5a91591599484d3be7d8e273ab5fe923ae7c4c3fcebd268b45b39c89276e4aaec4ac63ca023bc3bbca24cdcb0e17fc8938098b9a2f85
|
7
|
+
data.tar.gz: 382b9a0ea075c0e21ec1ca0b5cfcc8771aa437d69eb0ade3c727a291032d546a3bfc7b645aad0f2a4432b6612c3db9e41852623d9aa7f62f29071dc414bd05ae
|
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
potam (0.0.1)
|
5
|
+
gli (= 2.12.2)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
aruba (0.6.1)
|
11
|
+
childprocess (>= 0.3.6)
|
12
|
+
cucumber (>= 1.1.1)
|
13
|
+
rspec-expectations (>= 2.7.0)
|
14
|
+
builder (3.2.2)
|
15
|
+
childprocess (0.5.5)
|
16
|
+
ffi (~> 1.0, >= 1.0.11)
|
17
|
+
cucumber (1.3.17)
|
18
|
+
builder (>= 2.1.2)
|
19
|
+
diff-lcs (>= 1.1.3)
|
20
|
+
gherkin (~> 2.12)
|
21
|
+
multi_json (>= 1.7.5, < 2.0)
|
22
|
+
multi_test (>= 0.1.1)
|
23
|
+
diff-lcs (1.2.5)
|
24
|
+
ffi (1.9.6)
|
25
|
+
gherkin (2.12.2)
|
26
|
+
multi_json (~> 1.3)
|
27
|
+
gli (2.12.2)
|
28
|
+
highline (1.6.21)
|
29
|
+
multi_json (1.10.1)
|
30
|
+
multi_test (0.1.1)
|
31
|
+
rake (10.1.0)
|
32
|
+
rdoc (4.1.0)
|
33
|
+
rspec-expectations (3.1.2)
|
34
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
35
|
+
rspec-support (~> 3.1.0)
|
36
|
+
rspec-support (3.1.2)
|
37
|
+
sequel (4.16.0)
|
38
|
+
sqlite3 (1.3.10)
|
39
|
+
unicode (0.4.4.2)
|
40
|
+
|
41
|
+
PLATFORMS
|
42
|
+
ruby
|
43
|
+
|
44
|
+
DEPENDENCIES
|
45
|
+
aruba
|
46
|
+
highline
|
47
|
+
potam!
|
48
|
+
rake
|
49
|
+
rdoc
|
50
|
+
sequel
|
51
|
+
sqlite3
|
52
|
+
unicode
|
data/README.rdoc
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'rake/clean'
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rubygems/package_task'
|
4
|
+
require 'rdoc/task'
|
5
|
+
require 'cucumber'
|
6
|
+
require 'cucumber/rake/task'
|
7
|
+
Rake::RDocTask.new do |rd|
|
8
|
+
rd.main = "README.rdoc"
|
9
|
+
rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
|
10
|
+
rd.title = 'Your application title'
|
11
|
+
end
|
12
|
+
|
13
|
+
spec = eval(File.read('potam.gemspec'))
|
14
|
+
|
15
|
+
Gem::PackageTask.new(spec) do |pkg|
|
16
|
+
end
|
17
|
+
CUKE_RESULTS = 'results.html'
|
18
|
+
CLEAN << CUKE_RESULTS
|
19
|
+
desc 'Run features'
|
20
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
21
|
+
opts = "features --format html -o #{CUKE_RESULTS} --format progress -x"
|
22
|
+
opts += " --tags #{ENV['TAGS']}" if ENV['TAGS']
|
23
|
+
t.cucumber_opts = opts
|
24
|
+
t.fork = false
|
25
|
+
end
|
26
|
+
|
27
|
+
desc 'Run features tagged as work-in-progress (@wip)'
|
28
|
+
Cucumber::Rake::Task.new('features:wip') do |t|
|
29
|
+
tag_opts = ' --tags ~@pending'
|
30
|
+
tag_opts = ' --tags @wip'
|
31
|
+
t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty -x -s#{tag_opts}"
|
32
|
+
t.fork = false
|
33
|
+
end
|
34
|
+
|
35
|
+
task :cucumber => :features
|
36
|
+
task 'cucumber:wip' => 'features:wip'
|
37
|
+
task :wip => 'features:wip'
|
38
|
+
require 'rake/testtask'
|
39
|
+
Rake::TestTask.new do |t|
|
40
|
+
t.libs << "test"
|
41
|
+
t.test_files = FileList['test/*_test.rb']
|
42
|
+
end
|
43
|
+
|
44
|
+
task :default => [:test,:features]
|
data/bin/potam
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
require 'potam'
|
4
|
+
|
5
|
+
include GLI::App
|
6
|
+
include Dialog
|
7
|
+
|
8
|
+
program_desc 'Менеджер задач'
|
9
|
+
|
10
|
+
version Potam::VERSION
|
11
|
+
|
12
|
+
subcommand_option_handling :normal
|
13
|
+
arguments :strict
|
14
|
+
|
15
|
+
# ENV['GLI_DEBUG'] = 'true'
|
16
|
+
|
17
|
+
db = ENV['POTAM'] == 'test' ?
|
18
|
+
Sequel.sqlite("#{File.expand_path(File.dirname(__FILE__))}/../test/test.db") :
|
19
|
+
Sequel.sqlite("#{File.expand_path(File.dirname(__FILE__))}/../db/potam.db")
|
20
|
+
tasks = Tasks.new(db)
|
21
|
+
subtasks = Subtasks.new(db)
|
22
|
+
notes = Notes.new(db)
|
23
|
+
report = Report.new(db)
|
24
|
+
|
25
|
+
desc 'Указание номера задачи'
|
26
|
+
arg_name 'Номер задачи'
|
27
|
+
flag [:t,:task]
|
28
|
+
|
29
|
+
desc 'Пометить подзадачу как выполненную'
|
30
|
+
arg_name 'Номер подзадачи'
|
31
|
+
command :done do |c|
|
32
|
+
c.action do |global_options,options,args|
|
33
|
+
subtasks.finish!(args[0].to_i)
|
34
|
+
say("Подзадача 'Подзадача #{args[0]}' завершена")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
desc 'Добавление задач, подзадач и заметок'
|
39
|
+
arg_name 'Тип добавляемого объекта'
|
40
|
+
command :add do |c|
|
41
|
+
c.desc 'Добавить заметку'
|
42
|
+
c.switch :n, :note, :negatable => false
|
43
|
+
c.action do |global_options,options,args|
|
44
|
+
if global_options[:task]
|
45
|
+
if options[:note]
|
46
|
+
Dialog.ask_new_note
|
47
|
+
notes.create(task_id: global_options[:task], text: Dialog::new_note_text)
|
48
|
+
say("Заметка к задаче ##{global_options[:task]} добавлена")
|
49
|
+
else
|
50
|
+
Dialog.ask_new_subtask
|
51
|
+
subtasks.create(task_id: global_options[:task], title: Dialog::new_subtask_title)
|
52
|
+
say("Подзадача ##{subtasks.new_subtask_id} к задаче ##{global_options[:task]} добавлена")
|
53
|
+
end
|
54
|
+
else
|
55
|
+
Dialog.ask_new_task
|
56
|
+
tasks.create(title: Dialog::new_task_title, description: Dialog::new_task_description)
|
57
|
+
say("Задача '#{Dialog::new_task_title}' (##{tasks.new_task_id}) добавлена")
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
desc 'Просмотр перечня задач, подзадач и заметок'
|
63
|
+
arg_name 'Режим вывода списка'
|
64
|
+
command :list do |c|
|
65
|
+
c.desc 'Полный список'
|
66
|
+
c.switch :a, :all, :negatable => false
|
67
|
+
c.action do |global_options,options,args|
|
68
|
+
list_method = options[:all] ? :list : :last
|
69
|
+
if global_options[:task]
|
70
|
+
Dialog.say_task(task: tasks.info(global_options[:task]),
|
71
|
+
subtasks: subtasks.active(global_options[:task]),
|
72
|
+
notes: notes.__send__(list_method, global_options[:task]))
|
73
|
+
else
|
74
|
+
Dialog.say_tasks(tasks.__send__(list_method))
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
desc 'Вывести отчет'
|
80
|
+
arg_name 'Период отчета'
|
81
|
+
command :report do |c|
|
82
|
+
c.desc 'Недельный отчет'
|
83
|
+
c.switch :w, :week, :negatable => false
|
84
|
+
c.action do |global_options,options,args|
|
85
|
+
Dialog.say_report(report.week)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
exit run(ARGV)
|
data/db/old.db
ADDED
Binary file
|
data/db/old2.db
ADDED
Binary file
|
data/db/potam.db
ADDED
Binary file
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Feature: Adding note
|
2
|
+
As a time manager
|
3
|
+
In order to fix my activity
|
4
|
+
I want to add notes for specified task
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given following tasks exists:
|
8
|
+
| title | description | created_at |
|
9
|
+
| Тестовая задача 1 | Описание | 1415812561 |
|
10
|
+
| Тестовая задача 2 | Описание | 1415812566 |
|
11
|
+
|
12
|
+
Scenario: Successfully add notes
|
13
|
+
Given the date is "1415812566"
|
14
|
+
When I run command `-t 2 add -n`
|
15
|
+
And I type a note "Текст"
|
16
|
+
Then I should see "Заметка к задаче #2 добавлена"
|
17
|
+
When I run command `-t 2 list`
|
18
|
+
Then I should see
|
19
|
+
"""
|
20
|
+
#2 "Тестовая задача 2"
|
21
|
+
2014-11-12
|
22
|
+
Описание
|
23
|
+
|
24
|
+
2014-11-12
|
25
|
+
Текст
|
26
|
+
"""
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Feature: Adding task
|
2
|
+
As a time-manager
|
3
|
+
In order to group my activity
|
4
|
+
I want to add a task
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given following tasks exists:
|
8
|
+
| title | description | created_at |
|
9
|
+
| Тестовая задача 1 | Описание | 1415812561 |
|
10
|
+
| Тестовая задача 2 | Описание | 1415812566 |
|
11
|
+
|
12
|
+
Scenario: Successfully add tasks
|
13
|
+
Given the date is "1415812566"
|
14
|
+
When I run command `add`
|
15
|
+
And I type a task title "Тестовая задача 3"
|
16
|
+
And I type a task description "Описание"
|
17
|
+
Then I should see "Задача 'Тестовая задача 3' (#3) добавлена"
|
18
|
+
When I run command `-t 3 list`
|
19
|
+
Then I should see
|
20
|
+
"""
|
21
|
+
#3 "Тестовая задача 3"
|
22
|
+
2014-11-12
|
23
|
+
Описание
|
24
|
+
"""
|
25
|
+
|
26
|
+
# Scenario: Add multiline descriptions for tasks
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
Feature: Listing tasks
|
3
|
+
As a time-manager
|
4
|
+
In order to browse my tasks
|
5
|
+
I want to view list of my tasks
|
6
|
+
|
7
|
+
Background:
|
8
|
+
Given following tasks exists:
|
9
|
+
| title | description | created_at |
|
10
|
+
| Тестовая задача 1 | Описание | 1415812561 |
|
11
|
+
| Тестовая задача 2 | Описание | 1415812566 |
|
12
|
+
| Тестовая задача 3 | Описание | 1415812571 |
|
13
|
+
| Тестовая задача 4 | Описание | 1415812576 |
|
14
|
+
| Тестовая задача 5 | Описание | 1415812581 |
|
15
|
+
| Тестовая задача 6 | Описание | 1415812586 |
|
16
|
+
| Тестовая задача 7 | Описание | 1415812591 |
|
17
|
+
| Тестовая задача 8 | Описание | 1415812596 |
|
18
|
+
| Тестовая задача 9 | Описание | 1415812601 |
|
19
|
+
| Тестовая задача 10 | Описание | 1415812606 |
|
20
|
+
| Тестовая задача 11 | Описание | 1415812611 |
|
21
|
+
| Тестовая задача 12 | Описание | 1415812616 |
|
22
|
+
| Тестовая задача 13 | Описание | 1415812621 |
|
23
|
+
And following subtasks exists:
|
24
|
+
| title | task_id | status | created_at | finished_at |
|
25
|
+
| Подзадача 1 | 1 | 0 | 1415812626 | 0 |
|
26
|
+
| Подзадача 2 | 2 | 1 | 1415812566 | 1415812631 |
|
27
|
+
And following notes exists:
|
28
|
+
| task_id | text | created_at |
|
29
|
+
| 1 | Заметка 1 | 1415812566 |
|
30
|
+
| 1 | Заметка 2 | 1415812571 |
|
31
|
+
| 3 | Заметка 3 | 1415812961 |
|
32
|
+
|
33
|
+
Scenario: list 10 last tasks, where changes are made in subtasks or notes
|
34
|
+
When I run command `list`
|
35
|
+
Then I should see
|
36
|
+
"""
|
37
|
+
#3 Тестовая задача 3 2014-11-12
|
38
|
+
#2 Тестовая задача 2 2014-11-12
|
39
|
+
#1 Тестовая задача 1 2014-11-12
|
40
|
+
#13 Тестовая задача 13 2014-11-12
|
41
|
+
#12 Тестовая задача 12 2014-11-12
|
42
|
+
#11 Тестовая задача 11 2014-11-12
|
43
|
+
#10 Тестовая задача 10 2014-11-12
|
44
|
+
#9 Тестовая задача 9 2014-11-12
|
45
|
+
#8 Тестовая задача 8 2014-11-12
|
46
|
+
#7 Тестовая задача 7 2014-11-12
|
47
|
+
"""
|
48
|
+
|
49
|
+
Scenario: list all tasks, ordered by last time changes are made in subtasks or notes
|
50
|
+
When I run command `list -a`
|
51
|
+
Then I should see
|
52
|
+
"""
|
53
|
+
#3 Тестовая задача 3 2014-11-12
|
54
|
+
#2 Тестовая задача 2 2014-11-12
|
55
|
+
#1 Тестовая задача 1 2014-11-12
|
56
|
+
#13 Тестовая задача 13 2014-11-12
|
57
|
+
#12 Тестовая задача 12 2014-11-12
|
58
|
+
#11 Тестовая задача 11 2014-11-12
|
59
|
+
#10 Тестовая задача 10 2014-11-12
|
60
|
+
#9 Тестовая задача 9 2014-11-12
|
61
|
+
#8 Тестовая задача 8 2014-11-12
|
62
|
+
#7 Тестовая задача 7 2014-11-12
|
63
|
+
#6 Тестовая задача 6 2014-11-12
|
64
|
+
#5 Тестовая задача 5 2014-11-12
|
65
|
+
#4 Тестовая задача 4 2014-11-12
|
66
|
+
"""
|
@@ -0,0 +1,8 @@
|
|
1
|
+
#Feature: My bootstrapped app kinda works
|
2
|
+
# In order to get going on coding my awesome app
|
3
|
+
# I want to have aruba and cucumber setup
|
4
|
+
# So I don't have to do it myself
|
5
|
+
|
6
|
+
# Scenario: App just runs
|
7
|
+
# When I get help for "potam"
|
8
|
+
# Then the exit status should be 0
|
@@ -0,0 +1,58 @@
|
|
1
|
+
Feature: View report
|
2
|
+
As a time-manager
|
3
|
+
In order to browse my activity per period
|
4
|
+
I want to view reports
|
5
|
+
|
6
|
+
Background:
|
7
|
+
# Пт. нояб. 14 10:16:01
|
8
|
+
Given the date is "1415942161"
|
9
|
+
And following tasks exists:
|
10
|
+
# Ср. нояб. 5 10:16:01
|
11
|
+
# Ср. нояб. 5 13:13:01
|
12
|
+
# Ср. нояб. 12 22:16:06
|
13
|
+
| title | description | created_at |
|
14
|
+
| Тестовая задача 1 | Описание 1 | 1415164561 |
|
15
|
+
| Тестовая задача 2 | Описание 2 | 1415175181 |
|
16
|
+
| Тестовая задача 3 | Описание 3 | 1415812566 |
|
17
|
+
And following subtasks exists:
|
18
|
+
# Ср. нояб. 5 17:00:25
|
19
|
+
# Чт. нояб. 6 10:13:21, Пн. нояб. 10 09:10:21
|
20
|
+
# Чт. нояб. 13 11:00:01
|
21
|
+
| title | task_id | status | created_at | finished_at |
|
22
|
+
| Подзадача 1 | 1 | 0 | 1415188825 | 0 |
|
23
|
+
| Подзадача 2 | 2 | 1 | 1415250801 | 1415592621 |
|
24
|
+
| Подзадача 3 | 3 | 0 | 1415858401 | 0 |
|
25
|
+
And following notes exists:
|
26
|
+
# Пт. нояб. 7 10:10:23
|
27
|
+
# Вт. нояб. 11 14:50:32
|
28
|
+
# Чт. нояб. 13 11:00:00
|
29
|
+
| task_id | text | created_at |
|
30
|
+
| 1 | Заметка 1 | 1415337023 |
|
31
|
+
| 2 | Заметка 2 | 1415699432 |
|
32
|
+
| 3 | Заметка 3 | 1415858400 |
|
33
|
+
|
34
|
+
Scenario: view weekly report
|
35
|
+
When I run command `report -w`
|
36
|
+
Then I should see
|
37
|
+
"""
|
38
|
+
Проведена работа по следующим задачам:
|
39
|
+
#3 Тестовая задача 3 2014-11-12
|
40
|
+
#2 Тестовая задача 2 2014-11-05
|
41
|
+
===========================
|
42
|
+
Тестовая задача 3:
|
43
|
+
2014-11-12 (Ср) 22:16:06
|
44
|
+
Создана задача "Тестовая задача 3"
|
45
|
+
|
46
|
+
2014-11-13 (Чт) 11:00:00
|
47
|
+
Создана заметка "Заметка 3"
|
48
|
+
|
49
|
+
2014-11-13 (Чт) 11:00:01
|
50
|
+
Создана подзадача "Подзадача 3"
|
51
|
+
---------------------------
|
52
|
+
Тестовая задача 2:
|
53
|
+
2014-11-10 (Пн) 09:10:21
|
54
|
+
Завершена подзадача "Подзадача 2"
|
55
|
+
|
56
|
+
2014-11-11 (Вт) 14:50:32
|
57
|
+
Создана заметка "Заметка 2"
|
58
|
+
"""
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# When /^I get help for "([^"]*)"$/ do |app_name|
|
3
|
+
# @app_name = app_name
|
4
|
+
# step %(I run `#{app_name} help`)
|
5
|
+
# end
|
6
|
+
|
7
|
+
When(/^I run command `([^`]*)`$/) do |cmd|
|
8
|
+
cmd = 'potam ' + unescape(cmd)
|
9
|
+
run_interactive(cmd)
|
10
|
+
end
|
11
|
+
|
12
|
+
When(/^I type [^"]* "(.*?)"$/) do |input|
|
13
|
+
type(input)
|
14
|
+
end
|
15
|
+
|
16
|
+
Then(/^I should see "(.*?)"$/) do |output|
|
17
|
+
steps %Q(When I wait for output to contain "#{output}")
|
18
|
+
end
|
19
|
+
|
20
|
+
Then(/^I should see$/) do |output|
|
21
|
+
steps %Q(Then it should pass with:
|
22
|
+
"""
|
23
|
+
#{output}
|
24
|
+
"""
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
Given(/^following ([^ ]*) exists:$/) do |table, records|
|
29
|
+
db = Sequel.sqlite(TESTDB)
|
30
|
+
table = db[:"#{table}"]
|
31
|
+
records.hashes.each do |record|
|
32
|
+
table.insert(record)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
Given /^the date is "(.*?)"$/ do |timestamp|
|
37
|
+
# Timecop.travel Time.new(timestamp)
|
38
|
+
ENV['POTAMTIME'] = timestamp
|
39
|
+
end
|
40
|
+
|
41
|
+
# Then(/^I should look something like this$/) do |expected|
|
42
|
+
# assert_matching_output(expected, all_output)
|
43
|
+
# end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
Feature: Adding subtask
|
2
|
+
As a time-manager
|
3
|
+
In order to plan my activity
|
4
|
+
I want to manage subtasks
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given following tasks exists:
|
8
|
+
| title | description | created_at |
|
9
|
+
| Тестовая задача 1 | Описание | 1415812561 |
|
10
|
+
| Тестовая задача 2 | Описание | 1415812566 |
|
11
|
+
|
12
|
+
Scenario: Successfully add subtasks
|
13
|
+
Given the date is "1415812566"
|
14
|
+
When I run command `-t 2 add`
|
15
|
+
And I type a subtask title "Подзадача 1"
|
16
|
+
Then I should see "Подзадача #1 к задаче #2 добавлена"
|
17
|
+
When I run command `-t 2 list`
|
18
|
+
Then I should see
|
19
|
+
"""
|
20
|
+
#2 "Тестовая задача 2"
|
21
|
+
2014-11-12
|
22
|
+
Описание
|
23
|
+
Подзадачи:
|
24
|
+
2014-11-12 Подзадача 1 (#1)
|
25
|
+
"""
|
26
|
+
|
27
|
+
Scenario: Successfully mark subtask finished
|
28
|
+
When I run command `done 1`
|
29
|
+
Then I should see "Подзадача 'Подзадача 1' завершена"
|
30
|
+
|
31
|
+
# Scenario: Add multiline descriptions for tasks
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'aruba/cucumber'
|
2
|
+
require 'sequel'
|
3
|
+
# require 'cucumber/timecop'
|
4
|
+
|
5
|
+
ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
|
6
|
+
LIB_DIR = File.join(File.expand_path(File.dirname(__FILE__)),'..','..','lib')
|
7
|
+
CLEANDB = "#{File.expand_path(File.dirname(__FILE__))}/../../test/clean.db"
|
8
|
+
TESTDB = "#{File.expand_path(File.dirname(__FILE__))}/../../test/test.db"
|
9
|
+
|
10
|
+
Before do |scenario|
|
11
|
+
# Using "announce" causes massive warnings on 1.9.2
|
12
|
+
@puts = true
|
13
|
+
@original_rubylib = ENV['RUBYLIB']
|
14
|
+
ENV['RUBYLIB'] = LIB_DIR + File::PATH_SEPARATOR + ENV['RUBYLIB'].to_s
|
15
|
+
ENV['POTAM'] = 'test'
|
16
|
+
FileUtils.cp(CLEANDB, TESTDB) #if !defined? scenario.scenario_outline
|
17
|
+
end
|
18
|
+
|
19
|
+
After do
|
20
|
+
ENV['RUBYLIB'] = @original_rubylib
|
21
|
+
# Timecop.return
|
22
|
+
end
|
23
|
+
|
24
|
+
at_exit do
|
25
|
+
ENV['POTAM'] = 'production'
|
26
|
+
FileUtils.cp(CLEANDB, TESTDB)
|
27
|
+
end
|
@@ -0,0 +1,128 @@
|
|
1
|
+
Feature: Show info about task
|
2
|
+
As a time-manager
|
3
|
+
In order to learn my activity with specific task
|
4
|
+
I want to view details about task and its notes
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given following tasks exists:
|
8
|
+
| title | description | created_at |
|
9
|
+
| Тестовая задача 1 | Описание 1 | 1415812561 |
|
10
|
+
| Тестовая задача 2 | Описание 2 | 1415812566 |
|
11
|
+
And following subtasks exists:
|
12
|
+
| title | task_id | status | created_at |
|
13
|
+
| Подзадача 1 | 1 | 0 | 1415812661 |
|
14
|
+
| Подзадача 2 | 2 | 1 | 1415812666 |
|
15
|
+
| Подзадача 3 | 1 | 0 | 1415812961 |
|
16
|
+
And following notes exists:
|
17
|
+
| task_id | text | created_at |
|
18
|
+
| 1 | Заметка 1 | 1415812661 |
|
19
|
+
| 2 | Заметка 2 | 1415812666 |
|
20
|
+
| 1 | Заметка 3 | 1415812961 |
|
21
|
+
| 1 | Заметка 4 | 1415812961 |
|
22
|
+
| 1 | Заметка 5 | 1415813161 |
|
23
|
+
| 1 | Заметка 6 | 1415813261 |
|
24
|
+
| 1 | Заметка 7 | 1415813361 |
|
25
|
+
| 1 | Заметка 8 | 1415813461 |
|
26
|
+
| 1 | Заметка 9 | 1415813561 |
|
27
|
+
| 1 | Заметка 10 | 1415813661 |
|
28
|
+
| 1 | Заметка 11 | 1415813761 |
|
29
|
+
| 1 | Заметка 12 | 1415813861 |
|
30
|
+
| 1 | Заметка 13 | 1415813961 |
|
31
|
+
|
32
|
+
Scenario: view task info with subtasks and notes
|
33
|
+
When I run command `-t 1 list`
|
34
|
+
Then I should see
|
35
|
+
"""
|
36
|
+
#1 "Тестовая задача 1"
|
37
|
+
2014-11-12
|
38
|
+
Описание 1
|
39
|
+
Подзадачи:
|
40
|
+
2014-11-12 Подзадача 3 (#3)
|
41
|
+
2014-11-12 Подзадача 1 (#1)
|
42
|
+
|
43
|
+
2014-11-12
|
44
|
+
Заметка 13
|
45
|
+
|
46
|
+
2014-11-12
|
47
|
+
Заметка 12
|
48
|
+
|
49
|
+
2014-11-12
|
50
|
+
Заметка 11
|
51
|
+
|
52
|
+
2014-11-12
|
53
|
+
Заметка 10
|
54
|
+
|
55
|
+
2014-11-12
|
56
|
+
Заметка 9
|
57
|
+
|
58
|
+
2014-11-12
|
59
|
+
Заметка 8
|
60
|
+
|
61
|
+
2014-11-12
|
62
|
+
Заметка 7
|
63
|
+
|
64
|
+
2014-11-12
|
65
|
+
Заметка 6
|
66
|
+
|
67
|
+
2014-11-12
|
68
|
+
Заметка 5
|
69
|
+
|
70
|
+
2014-11-12
|
71
|
+
Заметка 4
|
72
|
+
"""
|
73
|
+
When I run command `-t 2 list`
|
74
|
+
Then I should see
|
75
|
+
"""
|
76
|
+
#2 "Тестовая задача 2"
|
77
|
+
2014-11-12
|
78
|
+
Описание 2
|
79
|
+
|
80
|
+
2014-11-12
|
81
|
+
Заметка 2
|
82
|
+
"""
|
83
|
+
When I run command `-t 1 list -a`
|
84
|
+
Then I should see
|
85
|
+
"""
|
86
|
+
#1 "Тестовая задача 1"
|
87
|
+
2014-11-12
|
88
|
+
Описание 1
|
89
|
+
Подзадачи:
|
90
|
+
2014-11-12 Подзадача 3 (#3)
|
91
|
+
2014-11-12 Подзадача 1 (#1)
|
92
|
+
|
93
|
+
2014-11-12
|
94
|
+
Заметка 13
|
95
|
+
|
96
|
+
2014-11-12
|
97
|
+
Заметка 12
|
98
|
+
|
99
|
+
2014-11-12
|
100
|
+
Заметка 11
|
101
|
+
|
102
|
+
2014-11-12
|
103
|
+
Заметка 10
|
104
|
+
|
105
|
+
2014-11-12
|
106
|
+
Заметка 9
|
107
|
+
|
108
|
+
2014-11-12
|
109
|
+
Заметка 8
|
110
|
+
|
111
|
+
2014-11-12
|
112
|
+
Заметка 7
|
113
|
+
|
114
|
+
2014-11-12
|
115
|
+
Заметка 6
|
116
|
+
|
117
|
+
2014-11-12
|
118
|
+
Заметка 5
|
119
|
+
|
120
|
+
2014-11-12
|
121
|
+
Заметка 4
|
122
|
+
|
123
|
+
2014-11-12
|
124
|
+
Заметка 3
|
125
|
+
|
126
|
+
2014-11-12
|
127
|
+
Заметка 1
|
128
|
+
"""
|