import unittest
from random import randrange

import short_url


class TestShortUrl(unittest.TestCase):

    def test_one(self):
        url = short_url.encode_url(12)
        self.assertEqual(url, 'jy7yj')
        key = short_url.decode_url(url)
        self.assertEqual(key, 12)

    def test_1000_random(self):
        for random_int in range(1000):
            random_int = randrange(100000000)
            url = short_url.encode_url(random_int)
            int_ = short_url.decode_url(url)
            self.assertEqual(random_int, int_)

    def test_custom_alphabet(self):
        encoder = short_url.UrlEncoder(alphabet='ab')
        url = encoder.encode_url(12)
        self.assertEqual(url, 'bbaaaaaaaaaaaaaaaaaaaa')
        key = encoder.decode_url('bbaaaaaaaaaaaaaaaaaaaa')
        self.assertEqual(key, 12)

    def test_short_alphabet(self):
        with self.assertRaises(AttributeError):
            short_url.UrlEncoder(alphabet='aa')
        with self.assertRaises(AttributeError):
            short_url.UrlEncoder(alphabet='a')


from random import randrange

from pytest import raises

import short_url





def test_custom_alphabet():
    encoder = short_url.UrlEncoder(alphabet='ab')
    url = encoder.encode_url(12)
    assert url == 'bbaaaaaaaaaaaaaaaaaaaa'
    key = encoder.decode_url('bbaaaaaaaaaaaaaaaaaaaa')
    assert key == 12


def test_too_short_alphabet():
    with raises(AttributeError):
        short_url.UrlEncoder(alphabet='aa')
    with raises(AttributeError):
        short_url.UrlEncoder(alphabet='a')

Use simple test functions and remove too special tests
Use simple test functions and remove too special tests

- import unittest
+ 
  from random import randrange
+ 
+ from pytest import raises
  
  import short_url
  
  
- class TestShortUrl(unittest.TestCase):
  
-     def test_one(self):
-         url = short_url.encode_url(12)
-         self.assertEqual(url, 'jy7yj')
-         key = short_url.decode_url(url)
-         self.assertEqual(key, 12)
  
-     def test_1000_random(self):
-         for random_int in range(1000):
-             random_int = randrange(100000000)
-             url = short_url.encode_url(random_int)
-             int_ = short_url.decode_url(url)
-             self.assertEqual(random_int, int_)
  
-     def test_custom_alphabet(self):
+ def test_custom_alphabet():
-         encoder = short_url.UrlEncoder(alphabet='ab')
+     encoder = short_url.UrlEncoder(alphabet='ab')
-         url = encoder.encode_url(12)
+     url = encoder.encode_url(12)
-         self.assertEqual(url, 'bbaaaaaaaaaaaaaaaaaaaa')
+     assert url == 'bbaaaaaaaaaaaaaaaaaaaa'
-         key = encoder.decode_url('bbaaaaaaaaaaaaaaaaaaaa')
+     key = encoder.decode_url('bbaaaaaaaaaaaaaaaaaaaa')
-         self.assertEqual(key, 12)
+     assert key == 12
  
-     def test_short_alphabet(self):
-         with self.assertRaises(AttributeError):
-             short_url.UrlEncoder(alphabet='aa')
-         with self.assertRaises(AttributeError):
-             short_url.UrlEncoder(alphabet='a')
  
+ def test_too_short_alphabet():
+     with raises(AttributeError):
+         short_url.UrlEncoder(alphabet='aa')
+     with raises(AttributeError):
+         short_url.UrlEncoder(alphabet='a')
+ 
Use simple test functions and remove too special tests
## Code Before:
import unittest
from random import randrange

import short_url


class TestShortUrl(unittest.TestCase):

    def test_one(self):
        url = short_url.encode_url(12)
        self.assertEqual(url, 'jy7yj')
        key = short_url.decode_url(url)
        self.assertEqual(key, 12)

    def test_1000_random(self):
        for random_int in range(1000):
            random_int = randrange(100000000)
            url = short_url.encode_url(random_int)
            int_ = short_url.decode_url(url)
            self.assertEqual(random_int, int_)

    def test_custom_alphabet(self):
        encoder = short_url.UrlEncoder(alphabet='ab')
        url = encoder.encode_url(12)
        self.assertEqual(url, 'bbaaaaaaaaaaaaaaaaaaaa')
        key = encoder.decode_url('bbaaaaaaaaaaaaaaaaaaaa')
        self.assertEqual(key, 12)

    def test_short_alphabet(self):
        with self.assertRaises(AttributeError):
            short_url.UrlEncoder(alphabet='aa')
        with self.assertRaises(AttributeError):
            short_url.UrlEncoder(alphabet='a')

## Instruction:
Use simple test functions and remove too special tests
## Code After:

from random import randrange

from pytest import raises

import short_url





def test_custom_alphabet():
    encoder = short_url.UrlEncoder(alphabet='ab')
    url = encoder.encode_url(12)
    assert url == 'bbaaaaaaaaaaaaaaaaaaaa'
    key = encoder.decode_url('bbaaaaaaaaaaaaaaaaaaaa')
    assert key == 12


def test_too_short_alphabet():
    with raises(AttributeError):
        short_url.UrlEncoder(alphabet='aa')
    with raises(AttributeError):
        short_url.UrlEncoder(alphabet='a')
