[Mailman-Developers] Accessing the members of a list
Harshit Bansal
harshitbansal2015 at gmail.com
Wed Feb 24 09:33:30 EST 2016
Hi Aditya,
Since a lot of Postorius code involves calls to Mailman's REST API and
running these tests against a real instance would be painfully slow,
hence ''vcrpy'' cassettess are used. These files contain pre-recorded
HTTP responses. If you write new tests, it's advisable to add a
separate fixture file for each test case. Considering your test, the
fixture file that your test uses contains the following pre-recorded
responses for the following POST requests :
request:
body: mail_host=example.com
headers:
accept-encoding: ['gzip, deflate']
!!python/unicode content-type: [!!python/unicode
application/x-www-form-urlencoded]
method: !!python/unicode POST
uri: http://localhost:9001/3.0/domains
request:
body: fqdn_listname=foo%40example.com
headers:
accept-encoding: ['gzip, deflate']
!!python/unicode content-type: [!!python/unicode
application/x-www-form-urlencoded]
method: !!python/unicode POST
uri: http://localhost:9001/3.0/lists
request:
body: display_name=None&list_id=foo.example.com&pre_approved=True&pre_confirmed=True&pre_verified=True&subscriber=member-1%40example.com
headers:
accept-encoding: ['gzip, deflate']
!!python/unicode content-type: [!!python/unicode
application/x-www-form-urlencoded]
method: !!python/unicode POST
uri: http://localhost:9001/3.0/members
request:
body: display_name=None&list_id=foo.example.com&pre_approved=True&pre_confirmed=True&pre_verified=True&subscriber=member-2%40example.com
headers:
accept-encoding: ['gzip, deflate']
!!python/unicode content-type: [!!python/unicode
application/x-www-form-urlencoded]
method: !!python/unicode POST
uri: http://localhost:9001/3.0/members
So only these request formats can be used in your test. If you want to
use other request formats then probably you have to record them in the
following fixture file:
src/postorius/tests/fixtures/vcr_cassettes/ListMembersTest.test_search_members_1.yaml
You can also refer to ''vcrpy'' documentation for more information.
Hope this helps.
Regards,
Harshit Bansal.
On 2/24/16, Aditya Divekar <adityadivekar03 at gmail.com> wrote:
> Thanks for the help Harshit!
> But I realized that I framed my question improperly. I used the above
> command before too, but it raises an error -
>
> CannotOverwriteExistingCassetteException: No match for the request
> (<Request (POST)
> http://localhost:9001/3.0/members/find?subscriber=%2Aexample.com%2A&list_id=foo.example.com&role=member>)
> was found. Can't overwrite existing cassette
> ('/home/hp/postorius_aditya/src/postorius/tests/fixtures/vcr_cassettes/ListMembersTest.test_search_members_1.yaml')
> in your current record mode ('once').
>
> Is this error because the request is not present in test cases or is it
> some other error?
> Also, if it is a test case problem, can anyone suggest me how to change the
> test case (or where I could read about how to go about it) to make the
> build pass?
>
> Thanks,
> Aditya.
>
More information about the Mailman-Developers
mailing list