-
Notifications
You must be signed in to change notification settings - Fork 60
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #18 from timonov/timonova-anastasia-lab3
Тимонова - Лабораторная работа #3
- Loading branch information
Showing
17 changed files
with
233 additions
and
194 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
import guiview | ||
from my_gui_view import gui_view | ||
|
||
if __name__ == '__main__': | ||
guiview.GuiView().mainloop() | ||
gui_view.GuiView().mainloop() |
This file was deleted.
Oops, something went wrong.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
from my_infrastructure.ilogger import ILogger | ||
|
||
|
||
class FakeLogger(ILogger): | ||
pass |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
class ILogger(object): | ||
|
||
def __init__(self): | ||
self.logs_list = [] | ||
|
||
def get_logs_list(self): | ||
return self.logs_list | ||
|
||
def append_message_to_logs_list(self, message): | ||
self.logs_list.append(message) | ||
|
||
def get_last_messages_from_logs_list(self, count): | ||
return self.logs_list[-count:] |
13 changes: 13 additions & 0 deletions
13
code/timonova-anastasia/src/my_infrastructure/real_logger.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
import logging | ||
|
||
from my_infrastructure.ilogger import ILogger | ||
|
||
|
||
class RealLogger(ILogger): | ||
def __init__(self): | ||
super(RealLogger, self).__init__() | ||
logging.basicConfig(filename='matrix.log', level=logging.INFO) | ||
|
||
def append_message_to_logs_list(self, message): | ||
self.logs_list.append(message) | ||
logging.info(message) |
29 changes: 29 additions & 0 deletions
29
code/timonova-anastasia/src/my_infrastructure/test_for_logger.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
import unittest | ||
|
||
from my_infrastructure.fake_logger import FakeLogger | ||
|
||
|
||
class TestForLogger(unittest.TestCase): | ||
def setUp(self): | ||
self.my_logger = FakeLogger() | ||
|
||
def test_can_create_logger(self): | ||
self.assertTrue(isinstance(self.my_logger, FakeLogger)) | ||
|
||
def test_by_default_log_is_empty(self): | ||
log = self.my_logger.get_logs_list() | ||
self.assertEqual(log, []) | ||
|
||
def test_state_after_append_message_to_logs_list(self): | ||
self.my_logger.append_message_to_logs_list('## testing line0 ##') | ||
self.assertEqual(['## testing line0 ##'], self.my_logger.get_last_messages_from_logs_list(1)) | ||
|
||
def test_can_get_last_log(self): | ||
self.my_logger.append_message_to_logs_list('## testing line1 ##') | ||
self.my_logger.append_message_to_logs_list('## testing line2 ##') | ||
self.assertEqual(['## testing line2 ##'], self.my_logger.get_last_messages_from_logs_list(1)) | ||
|
||
def test_can_log_several_messages(self): | ||
self.my_logger.append_message_to_logs_list('## testing line3 ##') | ||
self.my_logger.append_message_to_logs_list('## testing line4 ##') | ||
self.assertEqual(['## testing line3 ##', '## testing line4 ##'], self.my_logger.get_logs_list()) |
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions
4
...imonova-anastasia/src/tests_for_matrix.py → ...nastasia/src/my_model/tests_for_matrix.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
96 changes: 96 additions & 0 deletions
96
code/timonova-anastasia/src/my_view_model/tests_for_viewmodel.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
import unittest | ||
from my_view_model.view_model import ViewModel | ||
from my_infrastructure.fake_logger import FakeLogger | ||
from my_infrastructure.real_logger import RealLogger | ||
|
||
|
||
class TestForViewModel(unittest.TestCase): | ||
|
||
def setUp(self): | ||
self.view_model = ViewModel(FakeLogger()) | ||
|
||
def test_check_number_or_rows_in_init(self): | ||
self.assertEqual(self.view_model.get_number_of_rows(), 3) | ||
|
||
def test_check_init_matrix_by_zero_values(self): | ||
self.assertEqual(self.view_model.get_matrix_as_list(), [[0]*3]*3) | ||
|
||
def test_check_init_matrix_by_non_zero_values(self): | ||
content = [[2, 1, 2], [0, 3, 0], [3, 1, 1]] | ||
self.view_model.update_matrix_content(content) | ||
self.assertEqual(self.view_model.get_matrix_as_list(), [[2, 1, 2], [0, 3, 0], [3, 1, 1]]) | ||
|
||
def test_get_number_of_rows(self): | ||
self.view_model.set_number_of_rows(4) | ||
self.assertEqual(self.view_model.get_number_of_rows(), 4) | ||
|
||
def test_change_matrix_rank(self): | ||
self.view_model.set_number_of_rows(4) | ||
self.assertEqual(self.view_model.init_zero_matrix_with_new_rank_value(), [[0]*4]*4) | ||
|
||
def test_calculate_determinant(self): | ||
content = [[2, 1, 2], [0, 3, 0], [3, 1, 1]] | ||
self.view_model.update_matrix_content(content) | ||
self.assertEqual(self.view_model.calculate_determinant(), -12) | ||
|
||
def test_set_answer(self): | ||
answer_str = '1' | ||
self.view_model.set_answer(answer_str) | ||
self.assertEqual(self.view_model.answer, answer_str) | ||
|
||
def test_check_correct_answer(self): | ||
content = [[2, 1, 2], [0, 3, 0], [3, 1, 1]] | ||
self.view_model.update_matrix_content(content) | ||
self.view_model.calculate_determinant() | ||
self.assertEqual(self.view_model.answer, -12) | ||
|
||
|
||
class TestForViewModeWithFakeLogging(unittest.TestCase): | ||
def setUp(self): | ||
self.view_model = ViewModel(FakeLogger()) | ||
|
||
def test_start_logging(self): | ||
self.assertEqual(['\n\n## Start logging... ##'], | ||
self.view_model.my_logger.get_last_messages_from_logs_list(1)) | ||
|
||
def test_get_number_of_rows_logging(self): | ||
self.view_model.get_number_of_rows() | ||
self.assertEqual(['Getting matrix\'s rows: 3'], | ||
self.view_model.my_logger.get_last_messages_from_logs_list(1)) | ||
|
||
def test_set_number_of_rows(self): | ||
self.view_model.set_number_of_rows(4) | ||
self.assertEqual(['Setting matrix\'s rows: 4'], | ||
self.view_model.my_logger.get_last_messages_from_logs_list(1)) | ||
|
||
def test_get_matrix_as_list(self): | ||
self.view_model.get_matrix_as_list() | ||
self.assertEqual(['Getting matrix as data lines: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]'], | ||
self.view_model.my_logger.get_last_messages_from_logs_list(1)) | ||
|
||
def test_set_answer(self): | ||
self.view_model.set_answer('0') | ||
self.assertEqual(['Setting answer: 0'], self.view_model.my_logger.get_last_messages_from_logs_list(1)) | ||
|
||
def test_update_matrix_content(self): | ||
content = [[2, 1, 2], [0, 3, 0], [3, 1, 1]] | ||
self.view_model.update_matrix_content(content) | ||
self.assertEqual(['Updating matrix\'s content: [[2, 1, 2], [0, 3, 0], [3, 1, 1]]'], | ||
self.view_model.my_logger.get_last_messages_from_logs_list(1)) | ||
|
||
def test_calculate_determinant(self): | ||
content = [[2, 1, 2], [0, 3, 0], [3, 1, 1]] | ||
self.view_model.update_matrix_content(content) | ||
self.view_model.calculate_determinant() | ||
self.assertEqual(['Calculating determinant: -12'], | ||
self.view_model.my_logger.get_last_messages_from_logs_list(1)) | ||
|
||
def test_init_zero_matrix_with_new_rank_value(self): | ||
self.view_model.init_zero_matrix_with_new_rank_value() | ||
self.assertEqual(['Getting matrix as data lines: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]'], | ||
self.view_model.my_logger.get_last_messages_from_logs_list(1)) | ||
|
||
|
||
class TestForViewModeWithRealLogging(TestForViewModeWithFakeLogging): | ||
def setUp(self): | ||
self.view_model = ViewModel(RealLogger()) |
Oops, something went wrong.