# DRF Rack # Библиотека классов расширений для Django REST Framework # # Автор: Николай В. Анохин # Все права защищены. Лицензия: MIT """ Описание класса CryptoTests """ from net.xeaf.rack.core import CoreTestCase from net.xeaf.rack.managers import CryptoManager class CryptoManagerTests(CoreTestCase): """ Тесты для класса CryptoManager """ def test_gen_token(self): """ Тест генерации токена """ token = CryptoManager.gen_token() self.assertEqual(len(token), CryptoManager.DEFAULT_TOKEN_LENGTH) self.assertLowerHex(token) def test_gen_token_length(self): """ Тест генерации токена с указанием длины """ token = CryptoManager.gen_token(length=15) self.assertEqual(len(token), 15) def test_gen_token_different(self): """ Тест генерации разных токенов """ token1 = CryptoManager.gen_token() token2 = CryptoManager.gen_token() self.assertNotEqual(token1, token2) def test_gen_pin_code(self): """ Тест генерации PIN-кода """ pin_code = CryptoManager.gen_pin_code() self.assertEqual(len(pin_code), CryptoManager.DEFAULT_PIN_CODE_LENGTH) self.assertTrue(all(c in CryptoManager.DEFAULT_PIN_CODE_ALPHABET for c in pin_code)) def test_gen_pin_code_length(self): """ Тест генерации PIN-кода с указанием длины """ pin_code = CryptoManager.gen_pin_code(length=8) self.assertEqual(len(pin_code), 8) self.assertTrue(all(c in CryptoManager.DEFAULT_PIN_CODE_ALPHABET for c in pin_code)) def test_gen_pin_code_alphabet(self): """ Тест генерации PIN-кода с указанием алфавита """ letters = 'ABCD' pin_code = CryptoManager.gen_pin_code(alphabet=letters) self.assertEqual(len(pin_code), CryptoManager.DEFAULT_PIN_CODE_LENGTH) self.assertTrue(all(c in letters for c in pin_code)) def test_gen_pin_code_different(self): """ Тест генерации разных PIN-кодов """ pin_code_1 = CryptoManager.gen_pin_code() pin_code_2 = CryptoManager.gen_pin_code() self.assertNotEqual(pin_code_1, pin_code_2) def test_gen_slug(self): """ Тест генерации slug """ pfx = 'test' slug = CryptoManager.gen_slug(pfx) self.assertEqual(len(slug), CryptoManager.DEFAULT_SLUG_LENGTH) self.assertEqual(slug[:len(pfx)], pfx) self.assertLowerHex(slug[len(pfx):]) def test_gen_slug_length(self): """ Тест генерации slug с указанием длины """ pfx = 'test' slug = CryptoManager.gen_slug(pfx, length=16) self.assertEqual(len(slug), 16) def test_gen_slug_prefix(self): """ Тест генерации slug с длинным префиксом """ pfx = 'test_test_test' slug = CryptoManager.gen_slug(pfx) self.assertEqual(slug, pfx) def test_slug_different(self): """ Тест генерации разных slug """ slug_1 = CryptoManager.gen_slug('test') slug_2 = CryptoManager.gen_slug('test') self.assertNotEqual(slug_1, slug_2)