run_part1_tests module

Autograder tests for Part 1.

Run this script (python3 run_part1_tests.py) from the same directory as your client.py file. This will run all of the functionality tests for Part 1 of the project.

class run_part1_tests.ByteChangingServer

Bases: servers.StorageServer

Sample malicious server that randomly changes bytes.

get(k)
run_part1_tests.FuzzTester(C, pks, crypto, server=<class 'run_part1_tests.ByteChangingServer'>)

Runs all functionality tests with a fuzz testing server.

class run_part1_tests.StudentTester(theclass)

Bases: object

run_test(t, Server=<class 'servers.StorageServer'>, Crypto=<class 'crypto.Crypto'>, Pks=<class 'servers.PublicKeyServer'>)
run_part1_tests.run_part1_tests()

Runs all part 1 functionality tests.

run_part1_tests.t01_SimpleGetPut(C, pks, crypto, server)

Uploads a single file and checks the downloaded version is correct.

run_part1_tests.t02_SimpleGetPutNoState(C, pks, crypto, server)

Verifies that clients maintain no state about keys stored.

run_part1_tests.t03_SingleClientManyPuts(C, pks, crypto, server)

Uploads many files for the same user and checks they all uplad correctly.

run_part1_tests.t04_ValueDNE(C, pks, crypto, server)

Checks that values not stored at the server return None.

run_part1_tests.t05_NonCollidingNames(C, pks, crypto, server)

Uploads a file with the same name from two different users and checks for collisions.

run_part1_tests.t06_ManyGetPuts(C, pks, crypto, server)

Many clients upload many files and their contents are checked.

run_part1_tests.t07_SimpleGetPut(C, pks, crypto, server)

Tests that the server can handle long file names and keys