Ejemplo n.º 1
0
class TabelaChaveiro(Table):

    def __init__(self, *args, **kwargs):
        self.senha = kwargs['senha']
        del kwargs['senha']
        super(TabelaChaveiro, self).__init__(*args, **kwargs)
        self.chaveiro = Chaveiro(self.senha)
                        
    def mudou(self):
        dados = []
        for linha in self:
            itens = []
            for valor in linha:
                itens.append(valor)
            dados.append(itens)
        if dados:
            self.chaveiro.carregar(dados)
            self.chaveiro.gravar()

    def senha_digitada(self, controle, nova_senha):
        if self.chaveiro and self.chaveiro.senha != nova_senha:
            if yesno('Alterar a senha-mestre?'):
                self.chaveiro.senha = nova_senha
                self.mudou()
            else:
                controle.set_value(self.chaveiro.senha)
        else:
            self.chaveiro.senha = nova_senha
            
        if len(nova_senha):
            janela['acao'].enable()
        else:
            janela['acao'].disable()
        
    def carregar(self):
        try:
            self.chaveiro.ler()
        except (SenhaIncorreta, ArquivoCorrompido), erro:
            error(erro.__doc__)
        else:
Ejemplo n.º 2
0
class TabelaChaveiro(Table):
    def __init__(self, *args, **kwargs):
        self.senha = kwargs['senha']
        del kwargs['senha']
        super(TabelaChaveiro, self).__init__(*args, **kwargs)
        self.chaveiro = Chaveiro(self.senha)

    def mudou(self):
        dados = []
        for linha in self:
            itens = []
            for valor in linha:
                itens.append(valor)
            dados.append(itens)
        if dados:
            self.chaveiro.carregar(dados)
            self.chaveiro.gravar()

    def senha_digitada(self, controle, nova_senha):
        if self.chaveiro and self.chaveiro.senha != nova_senha:
            if yesno('Alterar a senha-mestre?'):
                self.chaveiro.senha = nova_senha
                self.mudou()
            else:
                controle.set_value(self.chaveiro.senha)
        else:
            self.chaveiro.senha = nova_senha

        if len(nova_senha):
            janela['acao'].enable()
        else:
            janela['acao'].disable()

    def carregar(self):
        try:
            self.chaveiro.ler()
        except (SenhaIncorreta, ArquivoCorrompido), erro:
            error(erro.__doc__)
        else:
Ejemplo n.º 3
0
class TestesChaveiroGravarLer(unittest.TestCase):
    def setUp(self):
        self.chaveiro0 = Chaveiro('000', nome_arq='chaveiro0.dat')
        self.itens9 = [str(i) for i in range(1, 10)]
        self.chaveiro9 = Chaveiro('999', nome_arq='chaveiro9.dat')
        [self.chaveiro9.incluir(i) for i in self.itens9]

    def test_gravar(self):
        self.chaveiro0.gravar()
        self.assertTrue(os.path.exists(self.chaveiro0.nome_arq))
        self.chaveiro9.gravar()
        self.assertTrue(os.path.exists(self.chaveiro9.nome_arq))

    def test_ler(self):
        self.chaveiro0.gravar()
        self.chaveiro_lido = Chaveiro('000', nome_arq='chaveiro0.dat')
        self.chaveiro_lido.ler()
        self.assertEqual([], [x for x in self.chaveiro_lido])
        self.chaveiro9.gravar()
        self.chaveiro_lido = Chaveiro('999', nome_arq='chaveiro9.dat')
        self.chaveiro_lido.ler()
        self.assertEqual(self.itens9, [x for x in self.chaveiro_lido])

    def test_senha_incorreta(self):
        self.chaveiro0.gravar()
        chaveiro_lido = Chaveiro(senha='', nome_arq='chaveiro0.dat')
        self.assertRaises(SenhaIncorreta, chaveiro_lido.ler)
        self.chaveiro9.gravar()
        chaveiro_lido = Chaveiro(senha='ERRADA', nome_arq='chaveiro9.dat')
        self.assertRaises(SenhaIncorreta, chaveiro_lido.ler)

    def test_detectar_arquivo_corrompido(self):
        self.chaveiro0.gravar()
        arq = open('chaveiro0.dat', 'ab')
        arq.write(b'x')
        arq.close()
        chaveiro_lido = Chaveiro('000', nome_arq='chaveiro0.dat')
        self.assertRaises(ArquivoCorrompido, chaveiro_lido.ler)

    def tearDown(self):
        for nome_arq in 'chaveiro0.dat chaveiro9.dat'.split():
            if os.path.exists(nome_arq):
                os.remove(nome_arq)
Ejemplo n.º 4
0
class TestesChaveiroGravarLer(unittest.TestCase):

    def setUp(self):
        self.chaveiro0 = Chaveiro('000', nome_arq='chaveiro0.dat')
        self.itens9 = [str(i) for i in range(1,10)]
        self.chaveiro9 = Chaveiro('999', nome_arq='chaveiro9.dat')
        [self.chaveiro9.incluir(i) for i in self.itens9]

    def test_gravar(self):
        self.chaveiro0.gravar()
        self.assertTrue(os.path.exists(self.chaveiro0.nome_arq))
        self.chaveiro9.gravar()
        self.assertTrue(os.path.exists(self.chaveiro9.nome_arq))

    def test_ler(self):
        self.chaveiro0.gravar()
        self.chaveiro_lido = Chaveiro('000', nome_arq='chaveiro0.dat')
        self.chaveiro_lido.ler()
        self.assertEqual([], [x for x in self.chaveiro_lido])
        self.chaveiro9.gravar()
        self.chaveiro_lido = Chaveiro('999', nome_arq='chaveiro9.dat')
        self.chaveiro_lido.ler()
        self.assertEqual(self.itens9, [x for x in self.chaveiro_lido])

    def test_senha_incorreta(self):
        self.chaveiro0.gravar()
        chaveiro_lido = Chaveiro(senha='', nome_arq='chaveiro0.dat')
        self.assertRaises(SenhaIncorreta, chaveiro_lido.ler)
        self.chaveiro9.gravar()
        chaveiro_lido = Chaveiro(senha='ERRADA', nome_arq='chaveiro9.dat')
        self.assertRaises(SenhaIncorreta, chaveiro_lido.ler)

    def test_detectar_arquivo_corrompido(self):
        self.chaveiro0.gravar()
        arq = open('chaveiro0.dat', 'ab')
        arq.write(b'x')
        arq.close()
        chaveiro_lido = Chaveiro('000', nome_arq='chaveiro0.dat')
        self.assertRaises(ArquivoCorrompido,chaveiro_lido.ler)

    def tearDown(self):
        for nome_arq in 'chaveiro0.dat chaveiro9.dat'.split():
            if os.path.exists(nome_arq):
                os.remove(nome_arq)