Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Strange behaviour in Apache::Htpasswd::htpasswd()

by adrianh (Chancellor)
on Oct 25, 2002 at 11:45 UTC ( #207963=note: print w/ replies, xml ) Need Help??


in reply to Strange behaviour in Apache::Htpasswd::htpasswd()

I'm not getting the same behaviour on my box.

I notice that you're not checking the return values of htpasswd. The method can fail, so looking at the return values might give you a clue ;-)

The following test script runs fine on my box...

#! /usr/bin/perl use strict; use warnings; use Apache::Htpasswd '1.5.4'; use Test::More tests => 13; my $TEST_FILE = "test_htpasswd.txt"; die "$TEST_FILE file already exists\n" if -e $TEST_FILE; # setup our test fixture { open(FILE, '>', $TEST_FILE) or die; close(FILE) or die; my $pwd = new Apache::Htpasswd($TEST_FILE); foreach (1..6) { $pwd->htpasswd("user$_", "pass$_") or die "failed to add user$_ " . $pwd->error . "\n"; }; }; my $pwd = new Apache::Htpasswd($TEST_FILE); foreach my $n (1..6) { ok($pwd->htCheckPassword("user$n", "pass$n"), "user $n added"); }; ok($pwd->htpasswd('user3', 'newpwd3', 1), "password for user3 changed" +) or diag "error reported was " . $pwd->error; foreach my $n (1..6) { my $pass = ($n==3) ? "newpwd3" : "pass$n"; ok($pwd->htCheckPassword("user$n", $pass), "user $n still valid"); }; unlink $TEST_FILE or die "could not unlink $TEST_FILE\n";


Comment on Re: Strange behaviour in Apache::Htpasswd::htpasswd()
Download Code
Replies are listed 'Best First'.
Re: Re: Strange behaviour in Apache::Htpasswd::htpasswd()
by George_Sherston (Vicar) on Oct 25, 2002 at 12:33 UTC
    Thanks very much for that. Alas, when I run it on my machine I get the same problem. My output is:
    1..13 ok 1 - user 1 added ok 2 - user 2 added ok 3 - user 3 added ok 4 - user 4 added ok 5 - user 5 added ok 6 - user 6 added ok 7 - password for user3 changed ok 8 - user 1 still valid ok 9 - user 2 still valid ok 10 - user 3 still valid not ok 11 - user 4 still valid # Failed test (ht.pl at line 33) ok 12 - user 5 still valid ok 13 - user 6 still valid # Looks like you failed 1 tests of 13.
    Also, when I comment out your last line and then examine the password file itself I find
    user1:htcxz2m4/W7uI user2:htAJmEn5bZEr2 user3:htw0q0ujGkzis:user4:htp108GVoN87g user5:htntqB2/z6ld6 user6:htF9EduYYp1o6
    ... which is the same prob I got before.

    Perhaps it's a version problem. I have Apache::Htpasswd v 1.5 and Test::More v 0.33. Also, I don't have method diag, which I'm substituting with die - this in itself wouldn't account for why it's not working for me, but might point to the difficulty. Except, I am guessing diag is a Test::More method?

    insta-update..Aha! It *was* a version problem. I installed v 1.5.5 and now get the right result from your script... and I doubt not, also from the script that was giving me trouble...

    insta-update 2Yes! It works now. Thanks very much - I'm most grateful.

    George Sherston

      This is yet another example of why I love Test::More, Test::Builder and friends so much.

      It is so much simpler to track down problems like this once you have a test script that just sits their and will succeed/fail without human intervention.

      If you've not done it already go read Test::Tutorial, The Joy of Test and What goes in a test suite?.

      Once you have become test infected you'll never turn back :-)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://207963]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2015-07-28 06:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (252 votes), past polls