{"push_id":870746726,"size":25,"distinct_size":25,"ref":"refs/heads/master","head":"97612ff013cc8188e1976239586b0b4ad8e33b9c","before":"cbe9207cd3d5618568dd0c50fefb07dcece639d7","commits":[{"sha":"b00a0a12aaee66da4e0da3e29f53c8bca2e3e845","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"1. create new file 'utils/test_helper.py'\n2. add function 'create_test_directory'","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/b00a0a12aaee66da4e0da3e29f53c8bca2e3e845"},{"sha":"80f001dae200c7474ceeede5a335e1416dc091aa","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add function 'create_test_user'\n@param    username    account name of new test user\n@param    password    password of new test user\n@param    user_level    authority of new test user\n@return    a User object","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/80f001dae200c7474ceeede5a335e1416dc091aa"},{"sha":"14cbb9cf4e1a12050f7699fb8cc85767e501ff7f","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add three functions:\n1) create_test_admin_user\n2) create_test_judge_user\n3) create_test_normal_user\n\nthese functions are for creating users with different authority","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/14cbb9cf4e1a12050f7699fb8cc85767e501ff7f"},{"sha":"8803eae2ad0d1f83baf275e1d9ee2e99a414739d","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add three functions:\n1)get_test_admin_user\n2)get_test_judge_user\n3)get_test_normal_user\n\nthese functions are for getting User object of test user with different\nauthority","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/8803eae2ad0d1f83baf275e1d9ee2e99a414739d"},{"sha":"b60bcf961394404f65f14690799c32aa0c6b716d","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add three functions:\n1)get_test_admin_client\n2)get_test_judge_client\n3)get_test_normal_user_client\n\nthese functions are for getting Client objects with different user logged\nin\n\na Client object is like a browser in django, which is powerful when\nwe need to make a HTTP request","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/b60bcf961394404f65f14690799c32aa0c6b716d"},{"sha":"4f0d4db9064d24afa2ad1879bdd5ab4a21bc1609","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"1. create new file 'problem/tests.py'\n\n    This file will be used for testing 'problem' when executing the\n    following instruction.\n    $python manage.py test problem\n\n2. add function 'setUp'\n\n    As the comment in file says, this function will be called in the beginning\n    of each testing method.","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/4f0d4db9064d24afa2ad1879bdd5ab4a21bc1609"},{"sha":"00fa5282a37e5099181204b89d7ae7b2a654918e","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add function 'create_problem'\n@param    pname    problem name of new test problem\n@param    owner    problem owner of new test problem\n@return    a Problem object","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/00fa5282a37e5099181204b89d7ae7b2a654918e"},{"sha":"c5eb4441ecb6e96804a6e85881d75de14cc92a2b","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add function 'test_01_new' for testing view 'new'\n(usage of this view: create a new problem)\n\nissue: current NTHUOJ cannot pass the third testcase in this method,\nwhich means NTHUOJ doesn't check whether an user having permission when\ncreating a new problem","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/c5eb4441ecb6e96804a6e85881d75de14cc92a2b"},{"sha":"fca31529867825fee6925dfc5df0d7104a84a610","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add function 'test_02_detail' for testing view 'detail'\n(Usage of this view: showing information about specific problem)","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/fca31529867825fee6925dfc5df0d7104a84a610"},{"sha":"982e32d4ff902519c7251674c6f85669ca626b56","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add function 'test_03_delete_problem' for testing view 'delete_problem'\n(Usage of this view: remove the problem by owner or admin)","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/982e32d4ff902519c7251674c6f85669ca626b56"},{"sha":"9e6bc3866b9755d3c8aa5d8fb52591dd06d31553","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add two funtions:\n1) random_word\n    @param    length    the size of string\n    @return    a random string which consists of lowercase characters\n\n2) create_testcase_files\n    @param    file_name    file name\n    @param    size    the number of characters in this file (default: 100)\n    @param    uploaded    the file location will be TESTCASE_PATH configured in nthuoj.cfg if this argument is set 'True' (default: False)\n    @return    a string representing file name (without file extension) of\n    input and output files just created","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/9e6bc3866b9755d3c8aa5d8fb52591dd06d31553"},{"sha":"15e58c0a73e825f2a2835cdb419a913cfdf4528e","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add function 'create_testcase'\n@param    problem    the problem which new testcase depends on\n@param    time_limit    time_limit of new testcase\n@param    memory_limit    memory_limit of new testcase\n@param    local_files    if this argument is set 'True', input and outout files of testcase will be generated in local testing directory (default: True)\n@param    uploaded_files    if this argument is set 'True', input and output files of testcase will be generated in TESTCASE_PATH configured in nthuoj.cfg (default: False)\n@return    a Testcase object","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/15e58c0a73e825f2a2835cdb419a913cfdf4528e"},{"sha":"2b5a00d8f432234bb66a8384e2a7514f7e1d8f73","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add two functions:\n1)remove_file_if_exists\n    @param    file_name    location of the file we want to remove\n    @return    nothing but removing the file\n\n2)remove_testcase_file\n    @param    local_file_name    file name (without file extension) of input and output files generated by function 'create_testcase_files' in local testing directory\n    @param    uploaded_file_name   file name (without file extention) of\n    input and output files generated by function 'create_testcase_files'\n    in TESTCASE_PATH configured in nthuoj.cfg (default: None)\n    @return    nothing but removing the files","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/2b5a00d8f432234bb66a8384e2a7514f7e1d8f73"},{"sha":"8140ec965ff503e20c839c77dfcf6d24f71390af","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add function 'compare_local_and_uploaded_testcase_files'\n@param    local_file_name    file name of input and output testcase files in testing directory\n@param    uploaded_file_name    file name of input and output testcase files in TESTCASE_PATH configured in nthuoj.cfg\n@return    True if input and output files in testing directory is the same as the ones in TESTCASE_PATH, otherwise False","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/8140ec965ff503e20c839c77dfcf6d24f71390af"},{"sha":"19581d97a00efed437e618642eef122bacae9c40","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add function 'test_05_testcase' for testing view 'testcase'\n(Usage of this view: add new testcases and upload input/output files)\n\nissue: current NTHUOJ cannot pass sixth testcase in this method, which\nmeans NTHUOJ doesn't check whether user having authority when modifying\ntestcase files","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/19581d97a00efed437e618642eef122bacae9c40"},{"sha":"925514c9e48aa1e8cef8e37baf5b0d7a937343b7","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add function 'test_06_delete_testcase' for testing view 'delete_testcase'\n(Usage of this view: remove testcase and input/output files corresponding\nto it)","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/925514c9e48aa1e8cef8e37baf5b0d7a937343b7"},{"sha":"550948701400bed8c3d05048d7380a5cf7056e79","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add function 'create_tag'\n@param    tag_name    name of new tag\n@param    problem    problem of new tag depends on\n@return    a Tag object","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/550948701400bed8c3d05048d7380a5cf7056e79"},{"sha":"f5119f7df14bc58049f2a6f77cd7c1b96c155429","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add function 'test_07_tag' for testing view 'tag'\n(Usage of this view: create new tags for specific problem)","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/f5119f7df14bc58049f2a6f77cd7c1b96c155429"},{"sha":"07f86e5ca3b573a40cbdc1f4167b8fcd06171cbd","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add function 'test_08_delete_tag' for testing view 'delete_tag'\n(Usage of this view: remove tags of specific problem)\n\nissue: current NTHUOJ cannot pass the fifth testcase in this method, which\nmeans that if we have identical tag on some problems, once we deleted the\ntag in one of the problem, the other problems would no longer have this tag","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/07f86e5ca3b573a40cbdc1f4167b8fcd06171cbd"},{"sha":"89ee71118232536d1029850dbe2815dfc5f7360a","author":{"email":"2f30dcc27d4cbb9afed45e347efc3b0e21dfb261@gmail.com","name":"jpdyuki"},"message":"add function 'create_submission'\n@param    problem    problem which new submission depends on\n@param    user    owner of new submission\n@param    status    status of new submission (Ex. AC, TLE, ... etc.)\n@return    a Submission object","distinct":true,"url":"https://api.github.com/repos/jpdyuki/NTHUOJ_web/commits/89ee71118232536d1029850dbe2815dfc5f7360a"}]}