コード例 #1
0
    def create_config(self):
        """
        Возвращает список список курсов из конфига и список студентов из гугл таблицы
        """
        conf.Configuration().load_config()

        self.config = Config(id=self.user.id,
                             **(conf.Configuration().get_data()))
        self.config.save()
コード例 #2
0
 def test_decode_error_config(self, mock_):
     """
     Негативный тест
     Проверяет исключение, если конфигурационный файл содержит ошибку json
     """
     config = conf.Configuration()
     config.path = os.path.join("tests", "resources", "empty_file.json")
     with self.assertRaises(ValueError) as raised_exception:
         config.path = os.path.join("tests", "resources", "empty_file.json")
         config.load_config()
     self.assertEqual(raised_exception.exception.args[0],
                      "Ошибка в конфигурационном файле")
     with self.assertRaises(ValueError) as raised_exception:
         config.path = os.path.join("tests", "resources",
                                    "config_decode_error_1.json")
         config.load_config()
     self.assertEqual(raised_exception.exception.args[0],
                      "Ошибка в конфигурационном файле")
     with self.assertRaises(ValueError) as raised_exception:
         config.path = os.path.join("tests", "resources",
                                    "config_decode_error_2.json")
         config.load_config()
     self.assertEqual(raised_exception.exception.args[0],
                      "Ошибка в конфигурационном файле")
     with self.assertRaises(ValueError) as raised_exception:
         config.path = os.path.join("tests", "resources",
                                    "config_decode_error_3.json")
         config.load_config()
     self.assertEqual(raised_exception.exception.args[0],
                      "Ошибка в конфигурационном файле")
コード例 #3
0
 def test_invalid_key(self, mock_):
     """
     Негативный тест
     Проверяет исключение, если запрашиваются данные по недействительному ключу
     """
     config = conf.Configuration()
     config.path = os.path.join("tests", "resources", "config.json")
     config.load_config()
     with self.assertRaises(ValueError) as raised_exception:
         config.get_config_by_key('key')
     self.assertEqual(raised_exception.exception.args[0],
                      "Ключ недействителен: 'key'")
     with self.assertRaises(ValueError) as raised_exception:
         config.get_config_by_key('ctepic')
     self.assertEqual(raised_exception.exception.args[0],
                      "Ключ недействителен: 'ctepic'")
     with self.assertRaises(ValueError) as raised_exception:
         config.get_config_by_key('googleTable')
     self.assertEqual(raised_exception.exception.args[0],
                      "Ключ недействителен: 'googleTable'")
コード例 #4
0
 def test_init_positive(self):
     """
     Позитивный тест
     Корректное значение данных конфигурации
     """
     config = conf.Configuration()
     conf.Configuration.__init__(
         config, os.path.join("tests", "resources", "config.json"))
     correct_data_config = {
         'google_table': {
             'URL':
             'https://docs.google.com/spreadsheets/d/1t1szRuyb023sfuXLf6p-fDLmMcNtAmKfK0enj4URTxU',
             'Sheet': 0,
             'FIO_Col': 1,
             'FIO_Rows': [11, 21],
             'ID_Col': 5,
             'ID_Rows': [11, 21]
         },
         'stepic': {
             'id_course': [64]
         }
     }
     self.assertEqual(config.get_data(), correct_data_config)
コード例 #5
0
 def test_get_by_key_positive(self):
     """
     Позитивный тест
     Корректное значение конфигурации по ключу
     """
     config = conf.Configuration()
     config.path = os.path.join("tests", "resources", "config.json")
     config.load_config()
     correct_google = {
         'URL':
         'https://docs.google.com/spreadsheets/d/1t1szRuyb023sfuXLf6p-fDLmMcNtAmKfK0enj4URTxU',
         'Sheet': 0,
         'FIO_Col': 1,
         'FIO_Rows': [11, 21],
         'ID_Col': 5,
         'ID_Rows': [11, 21]
     }
     correct_stepic = {'id_course': [64]}
     self.assertEqual(config.get_google_table_config(), correct_google)
     self.assertEqual(config.get_config_by_key('google_table'),
                      correct_google)
     self.assertEqual(config.get_stepic_config(), correct_stepic)
     self.assertEqual(config.get_config_by_key('stepic'), correct_stepic)
コード例 #6
0
 def test_wrong_path_config(self, mock_):
     """
     Негативный тест
     Проверяет исключение, если пользователь указал не верный путь к конфигурационному файлу
     """
     config = conf.Configuration()
     with self.assertRaises(ValueError) as raised_exception:
         config.path = os.path.join("resources", "wrong_path.json")
         config.load_config()
     self.assertEqual(
         raised_exception.exception.args[0],
         "Указанного пути не существует, path='resources\wrong_path.json'")
     with self.assertRaises(ValueError) as raised_exception:
         config.path = os.path.join("my_resources", "config.json")
         config.load_config()
     self.assertEqual(
         raised_exception.exception.args[0],
         "Указанного пути не существует, path='my_resources\config.json'")
     with self.assertRaises(ValueError) as raised_exception:
         config.path = os.path.join("windows", "config.json")
         config.load_config()
     self.assertEqual(
         raised_exception.exception.args[0],
         "Указанного пути не существует, path='windows\config.json'")
コード例 #7
0
 def test_empty_data(self, mock_):
     """
     Негативный тест
     Проверяет исключение, если конфигурационные данные пусты
     """
     config = conf.Configuration()
     config.path = os.path.join("tests", "resources", "config_empty.json")
     config.load_config()
     with self.assertRaises(ValueError) as raised_exception:
         config.get_google_table_config()
     self.assertEqual(raised_exception.exception.args[0],
                      "Конфигурационные данные отсутствуют")
     with self.assertRaises(ValueError) as raised_exception:
         config.get_stepic_config()
     self.assertEqual(raised_exception.exception.args[0],
                      "Конфигурационные данные отсутствуют")
     with self.assertRaises(ValueError) as raised_exception:
         config.get_config_by_key('stepic')
     self.assertEqual(raised_exception.exception.args[0],
                      "Конфигурационные данные отсутствуют")
     with self.assertRaises(ValueError) as raised_exception:
         config.get_config_by_key('google_table')
     self.assertEqual(raised_exception.exception.args[0],
                      "Конфигурационные данные отсутствуют")
コード例 #8
0
        :return: [] - список значений всех ячеек строки
        """
        if self.Sheet:
            return self.Sheet.row_values(num)

    def get_list(self, col, row_from, row_to):
        """
        Геттер списка строк столбца из заданного диапазона
        :param col: int - номер столбца
        :param row_from: int -начало диапазона строк
        :param row_to: int -конец диапазона строк
        :return: [] - список значений ячеек требуемого диапазона строк из столбца
        """
        if self.Sheet:
            all_rows = self.get_column(col)
            if all_rows:
                return all_rows[row_from - 1:row_to - 1]


if __name__ == "__main__":
    # Создание(чтение) конфигурации
    config = conf.Configuration()
    # Получение конфигурационных данных о гугл-таблице
    table_config = config.get_google_table_config()
    # Открытие таблицы с помощью gspread согласно конфигурационным данным
    a = GoogleTable()
    a.set_table(table_config['URL'], table_config['Sheet'])
    # Получение списка из таблицы
    print(a.get_list(table_config['FIO_Col'], table_config['FIO_Rows'][0], table_config['FIO_Rows'][1]))
    print(a.get_list(table_config['ID_Col'], table_config['ID_Rows'][0], table_config['ID_Rows'][1]))