def hospitalRegistration(usertype = None):
    if request.method == 'POST':
        hospital_data= json.dumps(request.form.to_dict())
        registerJson = json.loads(hospital_data)
        data = request.files['certificate']
        bcertificate=data.read()
        certificate =binascii.hexlify(bcertificate)
        valPassword = DBval.DBValidatePassword(registerJson['password'])
        password_value = valPassword.isValid()
        if(password_value):
            registerObject = res.Register(registerJson, g.logger,certificate, usertype)
            valid, url = registerObject.registerEntity()
            if(valid):
                g.logger.info("Registered Successfully")
                flash("Registered Successfully")
                return redirect(url_for('Login'))
            else:
                g.logger.error("Error Inserting Data") 
                flash("Registration error")
        else:
            g.logger.error("Incorrect Password Value")
            flash("Incorrect Password Value! \n Password should have 1 Upper case letter, 1 number, 1 special character and minimum 5 lower case letters") 
    return render_template('hospitalregistration.html')
def test_validateSpecialCharacters_failed(mock_parsepassword):
    mock_parsepassword.return_value = {"special_characters": 3}
    dbvalpass = dbval.DBValidatePassword("password!")
    assert dbvalpass.validateSpecialCharacters() == False
def test_validateDigits_failed(mock_parsepassword):
    mock_parsepassword.return_value = {"digits": 3}
    dbvalpass = dbval.DBValidatePassword("password1")
    assert dbvalpass.validateDigits() == False
def test_validateSpecialCharacters_noval(mock_parsepassword):
    mock_parsepassword.return_value = {"": 2}
    dbvalpass = dbval.DBValidatePassword("Password1P")
    assert dbvalpass.validateSpecialCharacters() == True
def test_validateDigits_noval(mock_parsepassword):
    mock_parsepassword.return_value = {"": 2}
    dbvalpass = dbval.DBValidatePassword("Password1P")
    assert dbvalpass.validateDigits() == True
def test_validateCapitalLetters(mock_parsepassword):
    mock_parsepassword.return_value = {"capital_letters": 2}
    dbvalpass = dbval.DBValidatePassword("Password1P")
    assert dbvalpass.validateCapitalLetters() == True
def test_validateDigits(mock_parsepassword):
    mock_parsepassword.return_value = {"digits": 3}
    dbvalpass = dbval.DBValidatePassword("password123")
    assert dbvalpass.validateDigits() == True
def test_validateSmallLetters_failed(mock_parsepassword):
    mock_parsepassword.return_value = {"small_letters": 5}
    dbvalpass = dbval.DBValidatePassword("password")
    assert dbvalpass.validateSmallLetters() == False
def test_validateCapitalLetters_failed(mock_parsepassword):
    mock_parsepassword.return_value = {"capital_letters": 4}
    dbvalpass = dbval.DBValidatePassword("Password1")
    assert dbvalpass.validateCapitalLetters() == False