Example #1
0
    def test_middle_numbers_or_symbols_deve_retornar_quantidade_de_numbers_or_symbols_estao_entre_characters(
            self):
        passwd = '1faev/fdw3a'

        additions = Additions(passwd)

        assert additions.middle_numbers_or_symbols() == 2
Example #2
0
    def test_score_add_middle_numbers_or_symbols(self):
        passwd = 'Jonas1Antu/nes'

        Additions(passwd)
        score = Score(passwd)

        assert score.score_add_middle_numbers_or_symbols() == 4
Example #3
0
    def test_score_add_requeriments(self):
        passwd = 'Jonas1Antunes/s'

        Additions(passwd)
        score = Score(passwd)

        assert score.score_add_requeriments() == 10
Example #4
0
    def test_score_add_numbers(self):
        passwd = 'Jonas4956'

        Additions(passwd)
        score = Score(passwd)

        assert score.score_add_numbers() == 16
Example #5
0
    def test_score_add_uppercases(self):
        passwd = 'JonasAntunes'

        Additions(passwd)
        score = Score(passwd)

        assert score.score_add_uppercases() == 20
Example #6
0
    def test_score_add_numbers_of_characters_passwd(self):
        passwd = 'jonasantunes'

        Additions(passwd)
        score = Score(passwd)

        assert score.score_add_number_of_characteres_passwd() == 48
Example #7
0
    def test_score_add_symbols(self):
        passwd = 'Jonas/antunes@'

        Additions(passwd)
        score = Score(passwd)

        assert score.score_add_symbols() == 12
Example #8
0
    def test_score_add_lowercases(self):
        passwd = 'jonasANTUNES'

        Additions(passwd)
        score = Score(passwd)

        assert score.score_add_lowercases() == 14
Example #9
0
    def test_score_add_uppercases_return_zero(self):
        passwd = '_______'

        Additions(passwd)
        score = Score(passwd)

        assert score.score_add_uppercases() == 0
Example #10
0
    def test_complexity_of_password_too_short(self):
        passwd = ''

        Deductions(passwd)
        Additions(passwd)
        score = Score(passwd)

        assert score.complexity() == '\033[1;31mToo Short\033[m'
Example #11
0
    def test_complexity_of_password_very_strong(self):
        passwd = 'Jo4/An9T-u'

        Deductions(passwd)
        Additions(passwd)
        score = Score(passwd)

        assert score.complexity() == '\033[1;32mVery Strong\033[m'
Example #12
0
    def test_complexity_of_password_good(self):
        passwd = 'Jo4/'

        Deductions(passwd)
        Additions(passwd)
        score = Score(passwd)

        assert score.complexity() == '\033[1;34mGood\033[m'
Example #13
0
    def test_complexity_of_password_weak(self):
        passwd = 'Jo4'

        Deductions(passwd)
        Additions(passwd)
        score = Score(passwd)

        assert score.complexity() == '\033[1;33mWeak\033[m'
Example #14
0
    def test_requirements_return_numeros_de_requerimentos_atingidos(
            self, mock_uppercases, mock_lowercases, mock_numbers,
            mock_symbols):
        mock_passwd = Mock()

        additions = Additions(mock_passwd)
        mock_uppercases.return_value = 1
        mock_lowercases.return_value = 7
        mock_numbers.return_value = 2
        mock_symbols.return_value = 1

        result = additions.requirements()

        self.assertEqual(result, additions.requirements())
        self.assertTrue(mock_uppercases.assert_called_once)
        self.assertTrue(mock_lowercases.assert_called_once)
        self.assertTrue(mock_numbers.assert_called_once)
        self.assertTrue(mock_symbols.assert_called_once)
Example #15
0
    def test_numbers_deve_retornar_quantidade_de_numeros(self):
        passwd = '123Jonas34'

        additions = Additions(passwd)

        assert additions.numbers() == 5
Example #16
0
 def __init__(self, passwd):
     self.__passwd = passwd
     self.__deduction = Deductions(passwd)
     self.__addition = Additions(passwd)
     self.__score = 0
Example #17
0
    def test_characters_passwd_deve_retornar_numero_de_letras(self):
        passwd = '123jonas'

        additions = Additions(passwd)

        self.assertEqual(additions.number_of_charactere_passwd(), 8)
Example #18
0
    def test_lowercase_deve_retornar_numero_de_letras_minusculas(self):
        passwd = '123JoNas'

        additions = Additions(passwd)

        self.assertEqual(additions.lowercases(), 3)
Example #19
0
class Score:
    def __init__(self, passwd):
        self.__passwd = passwd
        self.__deduction = Deductions(passwd)
        self.__addition = Additions(passwd)
        self.__score = 0

    def complexity(self):
        _complex = ''
        if len(self.__passwd) == 0:
            _complex = '\033[1;31mToo Short\033[m'
        elif self.get_score() < 20:
            _complex = '\033[1;31mVery Weak\033[m'
        elif self.get_score() < 40:
            _complex = '\033[1;33mWeak\033[m'
        elif self.get_score() < 60:
            _complex = '\033[1;34mGood\033[m'
        elif self.get_score() < 80:
            _complex = '\033[1;32mStrong\033[m'
        elif self.get_score() <= 100:
            _complex = '\033[1;32mVery Strong\033[m'
        return _complex

    def get_score(self):
        add = self.score_add_number_of_characteres_passwd(
        ) + self.score_add_lowercases() + self.score_add_uppercases(
        ) + self.score_add_numbers() + self.score_add_symbols(
        ) + self.score_add_middle_numbers_or_symbols(
        ) + self.score_add_requeriments()
        deduct = self.score_deduct_consecutive_numbers(
        ) + self.score_deduct_consecutives_lowercases(
        ) + self.score_deduct_consecutives_uppercases(
        ) + self.score_deduct_letters_only() + self.score_deduct_numbers_only(
        ) + self.score_deduct_sequential_letters(
        ) + self.score_deduct_sequential_numbers(
        ) + self.score_deduct_sequential_symbols()
        score = add - deduct
        if score > 100:
            score = 100
        return score

    def score_add_number_of_characteres_passwd(self):
        score = self.__addition.number_of_charactere_passwd() * 4
        return score

    def score_add_uppercases(self):
        if self.__addition.uppercases() != 0:
            score = (len(self.__passwd) - self.__addition.uppercases()) * 2
            return score
        return 0

    def score_add_lowercases(self):
        if self.__addition.lowercases() != 0:
            score = (len(self.__passwd) - self.__addition.lowercases()) * 2
            return score
        return 0

    def score_add_numbers(self):
        score = self.__addition.numbers() * 4
        return score

    def score_add_symbols(self):
        score = self.__addition.symbols() * 6
        return score

    def score_add_middle_numbers_or_symbols(self):
        score = self.__addition.middle_numbers_or_symbols() * 2
        return score

    def score_add_requeriments(self):
        score = 0
        if self.__addition.number_of_charactere_passwd() >= 8:
            if self.__addition.requirements() >= 4:
                score = self.__addition.requirements() * 2
        return score

    def score_deduct_letters_only(self):
        score = self.__deduction.letters_only()
        return score

    def score_deduct_numbers_only(self):
        score = self.__deduction.numbers_only()
        return score

    def score_deduct_consecutives_uppercases(self):
        score = self.__deduction.consecutive_uppercase_letters() * 2
        return score

    def score_deduct_consecutives_lowercases(self):
        score = self.__deduction.consecutive_lower_letters() * 2
        return score

    def score_deduct_consecutive_numbers(self):
        score = self.__deduction.consecutive_numbers() * 2
        return score

    def score_deduct_sequential_letters(self):
        score = self.__deduction.sequential_letters() * 3
        return score

    def score_deduct_sequential_numbers(self):
        score = self.__deduction.sequential_numbers() * 3
        return score

    def score_deduct_sequential_symbols(self):
        score = self.__deduction.sequential_symbols() * 3
        return score
Example #20
0
    def test_symbols_deve_retornar_numero_de_symbolos(self):
        passwd = '123-Jo#nas/'

        additions = Additions(passwd)

        assert additions.symbols() == 3
Example #21
0
import sys
from app.requiriments.additions.addition import Additions
from app.requiriments.deductions.deduction import Deductions
from app.score.score import Score

sys.path.append('C:/Users/jonas.antunes/Desktop/python/')

print('-'*30, f'\033[1;31mVerificação de senha\033[m', '-'*30)
senha = input('\033[1;33mDigite sua senha: \033[m')

add = Additions(senha)
deduct = Deductions(senha)
score = Score(senha)
print(f'Number of Characters:               \033[1;32m+{score.score_add_number_of_characteres_passwd()}\033[m')
print(f'Uppercase Letters:                  \033[1;32m+{score.score_add_uppercases()}\033[m')
print(f'Lowercase Letter:                   \033[1;32m+{score.score_add_lowercases()}\033[m')
print(f'Numbers:                            \033[1;32m+{score.score_add_numbers()}\033[m')
print(f'Symbols:                            \033[1;32m+{score.score_add_symbols()}\033[m')
print(f'Middle Numbers or Symbols:          \033[1;32m+{score.score_add_middle_numbers_or_symbols()}\033[m')
print(f'Requirements:                       \033[1;32m+{score.score_add_requeriments()}\033[m')
print(f'Letter Only:                        \033[1;31m-{score.score_deduct_letters_only()}\033[m')
print(f'Numbers Only:                       \033[1;31m-{score.score_deduct_numbers_only()}\033[m')
print(f'Consecutive Uppercase Letters:      \033[1;31m-{score.score_deduct_consecutives_uppercases()}\033[m')
print(f'Consecutive Lowercase Letters:      \033[1;31m-{score.score_deduct_consecutives_lowercases()}\033[m')
print(f'Consecutive Numbers:                \033[1;31m-{score.score_deduct_consecutive_numbers()}\033[m')
print(f'Sequential Letters (+3):            \033[1;31m-{score.score_deduct_sequential_letters()}\033[m')
print(f'Sequential Numbers (+3):            \033[1;31m-{score.score_deduct_sequential_numbers()}\033[m')
print(f'Sequential Symbols (+3):            \033[1;31m-{score.score_deduct_sequential_symbols()}\033[m')
print(f'Score:                     \033[1;32m{score.get_score():.0f}%\033[m')
print(f'Complexity:                {score.complexity()}')
Example #22
0
    def test_uppercases_deve_retornar_numero_de_letras_maiusculas(self):
        passwd = '123JoNaS'

        additions = Additions(passwd)

        self.assertEqual(additions.uppercases(), 3)