potam 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
"""
|