U
W[
{ � @ s d Z ddlmZmZ zddlZW n ek
r8 dZY nX dZddlZddlm Z ddl
mZ ddlm
Z
ddlmZ dd lmZ dd
lmZ ddlmZ ddlmZ dd
lmZ ddlmZ ddlmZmZmZm Z ddl!m"Z"m#Z# ddl$m%Z%m&Z& ddl'm(Z( ed��rPed��rPdZ)ddl*m+Z+ ddl,m-Z- ddl.m/Z/m0Z0 ddl1m2Z2 ndZ)e3edd�dk�rldZ4ndZ4G dd� de�Z5G dd� de�Z6G d d!� d!e�Z7G d"d#� d#e�Z8G d$d%� d%e�Z9G d&d'� d'e�Z:G d(d)� d)e�Z;e d*d+g�Z<G d,d-� d-e=�Z>G d.d/� d/e�Z?dS )0z&
Tests for L{twisted.conch.checkers}.
� )�absolute_import�divisionNzcannot run without crypt module)�
namedtuple)�BytesIO)�verifyObject)�util)�_b64encodebytes)�Failure)�
requireModule)�TestCase)�FilePath)�'InMemoryUsernamePasswordDatabaseDontUse)�UsernamePassword�IUsernamePassword�
SSHPrivateKey�ISSHPrivateKey)�UnhandledCredentials�UnauthorizedLogin)�UserDatabase�ShadowDatabase)�MockOSZcryptographyZpyasn1)�keys)�checkers)�NotEnoughAuthentication�ValidPublicKey)�keydataz)can't run without cryptography and PyASN1�geteuidz0Cannot run without effective UIDs (questionable)c @ sX e Zd ZdZepeZdd� Zdd� Zdd� Z dd � Z
d
d� Zdd
� Zdd� Z
dd� ZdS )�HelperTestszl
Tests for helper functions L{verifyCryptedPassword}, L{_pwdGetByName} and
L{_shadowGetByName}.
c C s t � | _d S �N)r �mockos��self� r"