student_mvp 0.1.0

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.
Files changed (127) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +35 -0
  3. data/Rakefile +4 -0
  4. data/doc/Add_student_presenter.html +238 -0
  5. data/doc/App_logger.html +386 -0
  6. data/doc/Base_presenter.html +265 -0
  7. data/doc/Binary_tree.html +300 -0
  8. data/doc/Binary_tree_iterator.html +217 -0
  9. data/doc/Contact_sort_decorator.html +219 -0
  10. data/doc/DB_client.html +252 -0
  11. data/doc/Data_list.html +625 -0
  12. data/doc/Data_list_student_short.html +148 -0
  13. data/doc/Data_storage_strategy.html +178 -0
  14. data/doc/Data_table.html +264 -0
  15. data/doc/Deep_dup.html +152 -0
  16. data/doc/Edit_contacts_presenter.html +199 -0
  17. data/doc/Edit_git_presenter.html +192 -0
  18. data/doc/Edit_student_presenter.html +464 -0
  19. data/doc/Field_filter_decorator.html +219 -0
  20. data/doc/Filter.html +148 -0
  21. data/doc/Filter_decorator.html +209 -0
  22. data/doc/Full_name_filter_decorator.html +211 -0
  23. data/doc/Full_name_sort_decorator.html +217 -0
  24. data/doc/Gemfile.html +98 -0
  25. data/doc/Git_sort_decorator.html +220 -0
  26. data/doc/Has_not_field_filter_decorator.html +209 -0
  27. data/doc/JSON_storage_strategy.html +183 -0
  28. data/doc/Person.html +511 -0
  29. data/doc/README_md.html +147 -0
  30. data/doc/Rakefile.html +94 -0
  31. data/doc/Replace_student_presenter.html +204 -0
  32. data/doc/Sort_decorator.html +214 -0
  33. data/doc/Student.html +755 -0
  34. data/doc/StudentMvp/Error.html +105 -0
  35. data/doc/StudentMvp.html +111 -0
  36. data/doc/Student_list_presenter.html +667 -0
  37. data/doc/Student_short.html +398 -0
  38. data/doc/Students_list.html +341 -0
  39. data/doc/Students_list_DB.html +361 -0
  40. data/doc/Students_list_file.html +460 -0
  41. data/doc/Students_list_file_adapter.html +341 -0
  42. data/doc/Students_list_interface.html +298 -0
  43. data/doc/YAML_storage_strategy.html +183 -0
  44. data/doc/bin/setup.html +96 -0
  45. data/doc/created.rid +44 -0
  46. data/doc/css/fonts.css +167 -0
  47. data/doc/css/rdoc.css +662 -0
  48. data/doc/fonts/Lato-Light.ttf +0 -0
  49. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  50. data/doc/fonts/Lato-Regular.ttf +0 -0
  51. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  52. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  53. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  54. data/doc/images/add.png +0 -0
  55. data/doc/images/arrow_up.png +0 -0
  56. data/doc/images/brick.png +0 -0
  57. data/doc/images/brick_link.png +0 -0
  58. data/doc/images/bug.png +0 -0
  59. data/doc/images/bullet_black.png +0 -0
  60. data/doc/images/bullet_toggle_minus.png +0 -0
  61. data/doc/images/bullet_toggle_plus.png +0 -0
  62. data/doc/images/date.png +0 -0
  63. data/doc/images/delete.png +0 -0
  64. data/doc/images/find.png +0 -0
  65. data/doc/images/loadingAnimation.gif +0 -0
  66. data/doc/images/macFFBgHack.png +0 -0
  67. data/doc/images/package.png +0 -0
  68. data/doc/images/page_green.png +0 -0
  69. data/doc/images/page_white_text.png +0 -0
  70. data/doc/images/page_white_width.png +0 -0
  71. data/doc/images/plugin.png +0 -0
  72. data/doc/images/ruby.png +0 -0
  73. data/doc/images/tag_blue.png +0 -0
  74. data/doc/images/tag_green.png +0 -0
  75. data/doc/images/transparent.png +0 -0
  76. data/doc/images/wrench.png +0 -0
  77. data/doc/images/wrench_orange.png +0 -0
  78. data/doc/images/zoom.png +0 -0
  79. data/doc/index.html +174 -0
  80. data/doc/js/darkfish.js +114 -0
  81. data/doc/js/navigation.js +105 -0
  82. data/doc/js/navigation.js.gz +0 -0
  83. data/doc/js/search.js +110 -0
  84. data/doc/js/search_index.js +1 -0
  85. data/doc/js/search_index.js.gz +0 -0
  86. data/doc/js/searcher.js +229 -0
  87. data/doc/js/searcher.js.gz +0 -0
  88. data/doc/table_of_contents.html +1047 -0
  89. data/lib/data_access/DB_client/DB_client.rb +26 -0
  90. data/lib/deep_dup/deep_dup.rb +14 -0
  91. data/lib/logger/logger.rb +64 -0
  92. data/lib/models/binary_tree/binary_tree.rb +163 -0
  93. data/lib/models/binary_tree/binary_tree_iterator.rb +36 -0
  94. data/lib/models/data_list/data_list.rb +97 -0
  95. data/lib/models/data_list/data_list_student_short.rb +16 -0
  96. data/lib/models/data_storage_strategy/JSON_storage_strategy.rb +20 -0
  97. data/lib/models/data_storage_strategy/YAML_storage_strategy.rb +20 -0
  98. data/lib/models/data_storage_strategy/data_storage_strategy.rb +11 -0
  99. data/lib/models/data_table/data_table.rb +52 -0
  100. data/lib/models/filter/filter.rb +5 -0
  101. data/lib/models/filter/filter_decorator.rb +14 -0
  102. data/lib/models/filter/sort_decorator.rb +15 -0
  103. data/lib/models/filter/student_filters/contact_sort_decorator.rb +50 -0
  104. data/lib/models/filter/student_filters/field_filter_decorator.rb +34 -0
  105. data/lib/models/filter/student_filters/full_name_filter_decorator.rb +26 -0
  106. data/lib/models/filter/student_filters/full_name_sort_decorator.rb +32 -0
  107. data/lib/models/filter/student_filters/git_sort_decorator.rb +35 -0
  108. data/lib/models/filter/student_filters/has_not_field_filter_decorator.rb +24 -0
  109. data/lib/models/person/person.rb +72 -0
  110. data/lib/models/student/student.rb +204 -0
  111. data/lib/models/student_short/student_short.rb +98 -0
  112. data/lib/models/students_list/students_list.rb +32 -0
  113. data/lib/models/students_list/students_list_DB.rb +95 -0
  114. data/lib/models/students_list/students_list_file.rb +134 -0
  115. data/lib/models/students_list/students_list_file_adapter.rb +45 -0
  116. data/lib/models/students_list/students_list_interface.rb +25 -0
  117. data/lib/presenters/base_presenters/base_presenter.rb +26 -0
  118. data/lib/presenters/base_presenters/student_list_presenter.rb +273 -0
  119. data/lib/presenters/edit_student/add_student_presenter.rb +46 -0
  120. data/lib/presenters/edit_student/edit_contacts_presenter.rb +36 -0
  121. data/lib/presenters/edit_student/edit_git_presenter.rb +28 -0
  122. data/lib/presenters/edit_student/edit_student_presenter.rb +109 -0
  123. data/lib/presenters/edit_student/replace_student_presenter.rb +37 -0
  124. data/lib/student_mvp/version.rb +5 -0
  125. data/lib/student_mvp.rb +8 -0
  126. data/sig/student_mvp.rbs +4 -0
  127. metadata +253 -0
@@ -0,0 +1,109 @@
1
+ require_relative '../../logger/logger.rb'
2
+
3
+ # == Edit_student_presenter
4
+ # Базовый класс для управления данными студентов.
5
+ # Предоставляет общие методы для редактирования информации о студентах.
6
+ class Edit_student_presenter
7
+
8
+ # Инициализация презентера для управления данными студентов.
9
+ #
10
+ # @param view [Modal_interface] Представление для взаимодействия с пользователем.
11
+ # @param parent_presenter [Student_list_presenter] Родительский презентер для управления общим контекстом.
12
+ def initialize(view, parent_presenter)
13
+ self.view = view
14
+ self.parent_presenter = parent_presenter
15
+ self.logger = App_logger.instance
16
+ end
17
+
18
+ # Основная операция редактирования студента.
19
+ #
20
+ # @param student_data [Hash] Данные студента.
21
+ def operation(student_data)
22
+ begin
23
+ self.logger.debug "Создание объекта студента: #{student_data.to_s}"
24
+ new_student(student_data)
25
+ self.parent_presenter.replace_student(self.student)
26
+ self.view.close
27
+ rescue => e
28
+ error_msg = "Ошибка при изменении студента: #{e.message}"
29
+ self.logger.error error_msg
30
+ self.view.show_error_message(error_msg)
31
+ end
32
+ end
33
+
34
+ # Создание нового объекта студента из предоставленных данных.
35
+ #
36
+ # @param student_data [Hash] Данные студента.
37
+ def new_student(student_data)
38
+ data = student_data.transform_values do |value|
39
+ stripped = value.strip
40
+ stripped.empty? ? nil : stripped
41
+ end
42
+
43
+ attributes = self.get_attributes
44
+ data.each do |key, value|
45
+ attributes[key.to_sym] = value
46
+ end
47
+ self.student = Student.new_from_hash(attributes)
48
+ end
49
+
50
+ # Получение данных студента из родительского презентера.
51
+ # Загружает информацию о выбранном студенте.
52
+ def get_student
53
+ id = self.parent_presenter.get_selected[0]
54
+ begin
55
+ self.student = self.parent_presenter.get_student(id)
56
+ rescue => e
57
+ error_msg = "Ошибка при загрузке данных о студенте: #{e.message}"
58
+ self.logger.error error_msg
59
+ self.view.show_error_message(error_msg)
60
+ end
61
+ end
62
+
63
+ # Заполнение полей интерфейса данными студента.
64
+ #
65
+ # @raise [NotImplementedError] Метод должен быть реализован в подклассе.
66
+ def populate_fields
67
+ raise NotImplementedError
68
+ end
69
+
70
+ # Проверка валидности данных студента.
71
+ #
72
+ # @param student_data [Hash] Данные студента.
73
+ # @return [Boolean] Возвращает true, если данные валидны.
74
+ def valid_data?(student_data)
75
+ data = student_data.transform_values { |value| value.strip }
76
+ Student.valid_name?(data["first_name"]) && Student.valid_name?(data["name"]) &&
77
+ Student.valid_name?(data["patronymic"]) && Student.valid_birthdate?(data["birthdate"])
78
+ end
79
+
80
+ protected
81
+ # @!attribute [rw] view
82
+ # @return [Modal_interface] Объект представления.
83
+ # @!attribute [rw] parent_presenter
84
+ # @return [Parent_presenter] Родительский презентер.
85
+ # @!attribute [rw] student
86
+ # @return [Student, nil] Объект студента.
87
+ # @!attribute [rw] logger
88
+ # @return [App_logger] Логгер для записи событий.
89
+ attr_accessor :view, :parent_presenter, :student, :logger
90
+
91
+ private
92
+
93
+ # Получение атрибутов из объекта студента.
94
+ #
95
+ # @return [Hash] Атрибуты студента.
96
+ def get_attributes
97
+ {
98
+ id: self.student&.id,
99
+ first_name: self.student&.first_name,
100
+ name: self.student&.name,
101
+ patronymic: self.student&.patronymic,
102
+ birthdate: self.student&.birthdate,
103
+ git: self.student&.git,
104
+ telegram: self.student&.telegram,
105
+ email: self.student&.email,
106
+ phone_number: self.student&.phone_number
107
+ }
108
+ end
109
+ end
@@ -0,0 +1,37 @@
1
+ require 'date'
2
+ require_relative '../../models/student/student.rb'
3
+ require_relative './edit_contacts_presenter'
4
+
5
+ # == Replace_student_presenter
6
+ # Презентер для замены информации о студенте.
7
+ class Replace_student_presenter < Edit_student_presenter
8
+
9
+ # Заполнение полей интерфейса текущими основными данными студента.
10
+ def populate_fields
11
+ self.get_student
12
+ data = {
13
+ "first_name" => self.student.first_name,
14
+ "name" => self.student.name,
15
+ "patronymic" => self.student.patronymic,
16
+ "birthdate" => self.student.birthdate.strftime('%d.%m.%Y'),
17
+ }
18
+ self.view.update_view data
19
+ end
20
+
21
+ # Проверка валидности новых данных студента.
22
+ #
23
+ # @param student_data [Hash] Новые данные студента.
24
+ # @return [Boolean] Возвращает true, если данные валидны и отличаются от текущих.
25
+ def valid_data?(student_data)
26
+ data = student_data.transform_values { |value| value.strip }
27
+ self.logger.debug "Проверка валидности данных: #{data.to_s}"
28
+ valid = super(data)
29
+ unchanged = self.student.first_name == data["first_name"] &&
30
+ self.student.name == data["name"] &&
31
+ self.student.patronymic == data["patronymic"] &&
32
+ self.student.birthdate.strftime('%d.%m.%Y') == data["birthdate"]
33
+ res = valid && !unchanged
34
+ self.logger.info "Валидность данных: #{res}"
35
+ res
36
+ end
37
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module StudentMvp
4
+ VERSION = "0.1.0"
5
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "student_mvp/version"
4
+
5
+ module StudentMvp
6
+ class Error < StandardError; end
7
+ # Your code goes here...
8
+ end
@@ -0,0 +1,4 @@
1
+ module StudentMvp
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,253 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: student_mvp
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - ZaiiiRan
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2024-12-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: date
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: logger
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: json
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: yaml
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: mysql2
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: dotenv
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Содержит в себе модели и презентеры, логгер и класс клиента для СУБД
98
+ MySQL, необходимые для разработки приложения для работы со студентами на основе
99
+ паттерна MVP.
100
+ email:
101
+ - a1b075753@gmail.com
102
+ executables: []
103
+ extensions: []
104
+ extra_rdoc_files: []
105
+ files:
106
+ - README.md
107
+ - Rakefile
108
+ - doc/Add_student_presenter.html
109
+ - doc/App_logger.html
110
+ - doc/Base_presenter.html
111
+ - doc/Binary_tree.html
112
+ - doc/Binary_tree_iterator.html
113
+ - doc/Contact_sort_decorator.html
114
+ - doc/DB_client.html
115
+ - doc/Data_list.html
116
+ - doc/Data_list_student_short.html
117
+ - doc/Data_storage_strategy.html
118
+ - doc/Data_table.html
119
+ - doc/Deep_dup.html
120
+ - doc/Edit_contacts_presenter.html
121
+ - doc/Edit_git_presenter.html
122
+ - doc/Edit_student_presenter.html
123
+ - doc/Field_filter_decorator.html
124
+ - doc/Filter.html
125
+ - doc/Filter_decorator.html
126
+ - doc/Full_name_filter_decorator.html
127
+ - doc/Full_name_sort_decorator.html
128
+ - doc/Gemfile.html
129
+ - doc/Git_sort_decorator.html
130
+ - doc/Has_not_field_filter_decorator.html
131
+ - doc/JSON_storage_strategy.html
132
+ - doc/Person.html
133
+ - doc/README_md.html
134
+ - doc/Rakefile.html
135
+ - doc/Replace_student_presenter.html
136
+ - doc/Sort_decorator.html
137
+ - doc/Student.html
138
+ - doc/StudentMvp.html
139
+ - doc/StudentMvp/Error.html
140
+ - doc/Student_list_presenter.html
141
+ - doc/Student_short.html
142
+ - doc/Students_list.html
143
+ - doc/Students_list_DB.html
144
+ - doc/Students_list_file.html
145
+ - doc/Students_list_file_adapter.html
146
+ - doc/Students_list_interface.html
147
+ - doc/YAML_storage_strategy.html
148
+ - doc/bin/setup.html
149
+ - doc/created.rid
150
+ - doc/css/fonts.css
151
+ - doc/css/rdoc.css
152
+ - doc/fonts/Lato-Light.ttf
153
+ - doc/fonts/Lato-LightItalic.ttf
154
+ - doc/fonts/Lato-Regular.ttf
155
+ - doc/fonts/Lato-RegularItalic.ttf
156
+ - doc/fonts/SourceCodePro-Bold.ttf
157
+ - doc/fonts/SourceCodePro-Regular.ttf
158
+ - doc/images/add.png
159
+ - doc/images/arrow_up.png
160
+ - doc/images/brick.png
161
+ - doc/images/brick_link.png
162
+ - doc/images/bug.png
163
+ - doc/images/bullet_black.png
164
+ - doc/images/bullet_toggle_minus.png
165
+ - doc/images/bullet_toggle_plus.png
166
+ - doc/images/date.png
167
+ - doc/images/delete.png
168
+ - doc/images/find.png
169
+ - doc/images/loadingAnimation.gif
170
+ - doc/images/macFFBgHack.png
171
+ - doc/images/package.png
172
+ - doc/images/page_green.png
173
+ - doc/images/page_white_text.png
174
+ - doc/images/page_white_width.png
175
+ - doc/images/plugin.png
176
+ - doc/images/ruby.png
177
+ - doc/images/tag_blue.png
178
+ - doc/images/tag_green.png
179
+ - doc/images/transparent.png
180
+ - doc/images/wrench.png
181
+ - doc/images/wrench_orange.png
182
+ - doc/images/zoom.png
183
+ - doc/index.html
184
+ - doc/js/darkfish.js
185
+ - doc/js/navigation.js
186
+ - doc/js/navigation.js.gz
187
+ - doc/js/search.js
188
+ - doc/js/search_index.js
189
+ - doc/js/search_index.js.gz
190
+ - doc/js/searcher.js
191
+ - doc/js/searcher.js.gz
192
+ - doc/table_of_contents.html
193
+ - lib/data_access/DB_client/DB_client.rb
194
+ - lib/deep_dup/deep_dup.rb
195
+ - lib/logger/logger.rb
196
+ - lib/models/binary_tree/binary_tree.rb
197
+ - lib/models/binary_tree/binary_tree_iterator.rb
198
+ - lib/models/data_list/data_list.rb
199
+ - lib/models/data_list/data_list_student_short.rb
200
+ - lib/models/data_storage_strategy/JSON_storage_strategy.rb
201
+ - lib/models/data_storage_strategy/YAML_storage_strategy.rb
202
+ - lib/models/data_storage_strategy/data_storage_strategy.rb
203
+ - lib/models/data_table/data_table.rb
204
+ - lib/models/filter/filter.rb
205
+ - lib/models/filter/filter_decorator.rb
206
+ - lib/models/filter/sort_decorator.rb
207
+ - lib/models/filter/student_filters/contact_sort_decorator.rb
208
+ - lib/models/filter/student_filters/field_filter_decorator.rb
209
+ - lib/models/filter/student_filters/full_name_filter_decorator.rb
210
+ - lib/models/filter/student_filters/full_name_sort_decorator.rb
211
+ - lib/models/filter/student_filters/git_sort_decorator.rb
212
+ - lib/models/filter/student_filters/has_not_field_filter_decorator.rb
213
+ - lib/models/person/person.rb
214
+ - lib/models/student/student.rb
215
+ - lib/models/student_short/student_short.rb
216
+ - lib/models/students_list/students_list.rb
217
+ - lib/models/students_list/students_list_DB.rb
218
+ - lib/models/students_list/students_list_file.rb
219
+ - lib/models/students_list/students_list_file_adapter.rb
220
+ - lib/models/students_list/students_list_interface.rb
221
+ - lib/presenters/base_presenters/base_presenter.rb
222
+ - lib/presenters/base_presenters/student_list_presenter.rb
223
+ - lib/presenters/edit_student/add_student_presenter.rb
224
+ - lib/presenters/edit_student/edit_contacts_presenter.rb
225
+ - lib/presenters/edit_student/edit_git_presenter.rb
226
+ - lib/presenters/edit_student/edit_student_presenter.rb
227
+ - lib/presenters/edit_student/replace_student_presenter.rb
228
+ - lib/student_mvp.rb
229
+ - lib/student_mvp/version.rb
230
+ - sig/student_mvp.rbs
231
+ homepage:
232
+ licenses: []
233
+ metadata: {}
234
+ post_install_message:
235
+ rdoc_options: []
236
+ require_paths:
237
+ - lib
238
+ required_ruby_version: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: 3.0.0
243
+ required_rubygems_version: !ruby/object:Gem::Requirement
244
+ requirements:
245
+ - - ">="
246
+ - !ruby/object:Gem::Version
247
+ version: '0'
248
+ requirements: []
249
+ rubygems_version: 3.4.1
250
+ signing_key:
251
+ specification_version: 4
252
+ summary: Презентеры и модели для разработки приложения для работы со студентами.
253
+ test_files: []