From 8d5fcd055745ed348ddd6f81fe9ff95578f10c8b Mon Sep 17 00:00:00 2001 From: zheng xie Date: Wed, 8 Aug 2018 10:22:26 +0800 Subject: [PATCH] 6.3 fix test (#2264) * wip: Fix tests * [tests] Update --- .travis.yml | 22 +++++---- .travis/dist_and_push.sh | 20 ++++++++ .travis/travis_deploy_key.enc | Bin 0 -> 3248 bytes tests/api/endpoints/test_shared_repos.py | 46 +++++++++++++------ tests/seahub/views/sysadmin/test_sysadmin.py | 10 ++-- tests/seahubtests.sh | 11 ++++- 6 files changed, 80 insertions(+), 29 deletions(-) create mode 100755 .travis/dist_and_push.sh create mode 100644 .travis/travis_deploy_key.enc diff --git a/.travis.yml b/.travis.yml index c8b6a51b71..cb7bac0717 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,10 @@ language: python env: - - CCNET_CONF_DIR=/tmp/ccnet SEAFILE_CONF_DIR=/tmp/seafile-data + global: + - CCNET_CONF_DIR=/tmp/ccnet SEAFILE_CONF_DIR=/tmp/seafile-data + - secure: "AFqKit45l2758+TrH/l0SFN6k5lc9ALmZGPBGbGeYSzSGZ4+Cx7tHyQwgZgiitf9BzVci1ClaIMfNxp8BG6ECDAMXcbMyAksItG2aM/x//YT59ljgrwnNeZFfwh8LWuZslboxXx/Pfrv9QSX0c6dcTyEfKFLVKW1U2bn4MxdF+A=" + # install & start seafile-server CE v6.3, install phantomjs & nginx before_install: @@ -10,21 +13,23 @@ before_install: - cd /tmp/seafile-test-deploy && ./bootstrap.sh && cd - # install phantomjs - ./tests/install-deps.sh + - npm install -g requirejs + - openssl aes-256-cbc -K $encrypted_bdef00a70236_key -iv $encrypted_bdef00a70236_iv -in .travis/travis_deploy_key.enc -out travis_deploy_key -d && mv travis_deploy_key ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa # install seahub requirements install: - pip install -r requirements.txt --allow-all-external --allow-unverified PIL - pip install -r test-requirements.txt -# int & start seahub server -before_scipt: - - ./tests/seahubtests.sh init && ./tests/seahubtests.sh runserver +before_scipt: true -# run seahub tests +# int & start seahub server, run seahub tests script: - - ./tests/seahubtests.sh test + - ./tests/seahubtests.sh init && ./tests/seahubtests.sh runserver && ./tests/seahubtests.sh test -after_success: true +after_success: + - ./tests/seahubtests.sh dist + - .travis/dist_and_push.sh after_failure: true @@ -41,4 +46,5 @@ branches: only: - master - 6.3 - - 6.2 \ No newline at end of file + - 6.2 + - 6.3-fix_test \ No newline at end of file diff --git a/.travis/dist_and_push.sh b/.travis/dist_and_push.sh new file mode 100755 index 0000000000..2fa1d65a01 --- /dev/null +++ b/.travis/dist_and_push.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +commit_media_files() { + git checkout -b dist-$TRAVIS_BRANCH + git add -u . && git add -A media/assets && git add -A static/scripts + git commit -m "[dist] Travis build: #$TRAVIS_BUILD_NUMBER, based on commit $TRAVIS_COMMIT." -m "https://travis-ci.org/haiwen/seahub/builds/$TRAVIS_BUILD_ID" -m "$TRAVIS_COMMIT_MESSAGE" +} + +upload_files() { + git push git@github.com:haiwen/seahub.git dist-$TRAVIS_BRANCH -f +} + +make_dist() { + make dist +} + + +# make_dist +commit_media_files +upload_files diff --git a/.travis/travis_deploy_key.enc b/.travis/travis_deploy_key.enc new file mode 100644 index 0000000000000000000000000000000000000000..80d6cdb6b4237645fb5582c851213012a95ce8f0 GIT binary patch literal 3248 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 0 - assert len(json_resp[0]['modifier_name']) > 0 - assert len(json_resp[0]['modifier_contact_email']) > 0 + assert 'personal' in [x['share_type'] for x in json_resp] + for r in json_resp: + if r['share_type'] != 'personal': + continue + + assert r['repo_id'] == self.repo_id + assert r['user_email'] == self.admin_name + assert r['user_name'] == nickname + assert r['contact_email'] == contact_email + assert len(r['modifier_email']) > 0 + assert len(r['modifier_name']) > 0 + assert len(r['modifier_contact_email']) > 0 def test_can_get_when_share_to_group(self): self.share_repo_to_group() @@ -73,9 +86,13 @@ class SharedReposTest(BaseTestCase): self.assertEqual(200, resp.status_code) json_resp = json.loads(resp.content) - assert json_resp[0]['share_type'] == 'group' - assert json_resp[0]['repo_id'] == self.repo_id - assert json_resp[0]['group_id'] == self.group_id + assert 'group' in [x['share_type'] for x in json_resp] + for r in json_resp: + if r['share_type'] != 'group': + continue + + assert r['repo_id'] == self.repo_id + assert r['group_id'] == self.group_id @pytest.mark.skipif(TRAVIS, reason="") # pylint: disable=E1101 def test_can_get_when_share_to_org_group(self): @@ -85,6 +102,7 @@ class SharedReposTest(BaseTestCase): resp = self.client.get(self.url) self.assertEqual(200, resp.status_code) json_resp = json.loads(resp.content) + assert len(json_resp) == 1 assert json_resp[0]['share_type'] == 'group' assert json_resp[0]['repo_id'] == self.org_repo.id @@ -94,11 +112,11 @@ class SharedReposTest(BaseTestCase): self.share_repo_to_public() self.login_as(self.user) - resp = self.client.get(self.url) + resp = self.client.get(self.url + '?share_type=public') self.assertEqual(200, resp.status_code) json_resp = json.loads(resp.content) - assert json_resp[0]['share_type'] == 'public' + assert 'public' in [x['share_type'] for x in json_resp] def test_get_with_invalid_repo_permission(self): diff --git a/tests/seahub/views/sysadmin/test_sysadmin.py b/tests/seahub/views/sysadmin/test_sysadmin.py index 72645b6fc6..0d017cdec7 100644 --- a/tests/seahub/views/sysadmin/test_sysadmin.py +++ b/tests/seahub/views/sysadmin/test_sysadmin.py @@ -174,18 +174,17 @@ class BatchAddUserTest(BaseTestCase): self.new_users = [] self.excel_file = os.path.join(os.getcwd(), 'tests/seahub/views/sysadmin/batch_add_user.xlsx') data_list = [] - data_list.append(['email', 'password', 'username', 'department', 'role', 'quota']) + data_list.append(['email', 'password', 'username', 'role', 'quota']) for i in xrange(20): username = "username@test" + str(i) +".com" password = "password" name = "name_test" + str(i) - department = "department_test" + str(i) if i < 10: role = "guest" else: role = "default" quota = "999" - data_list.append([username, password, name, department, role, quota]) + data_list.append([username, password, name, role, quota]) self.new_users.append(username) wb = real_write_xls('test', data_list[0], data_list[1:]) wb.save(self.excel_file) @@ -318,7 +317,6 @@ class BatchAddUserHelpTest(BaseTestCase): assert r[0].value == 'test' + str(i) + '@example.com' assert r[1].value == '123456' assert r[2].value == 'test' + str(i) - assert r[3].value == 'department' + str(i) - assert r[4].value == 'default' - assert r[5].value == '1000' + assert r[3].value == 'default' + assert r[4].value == '1000' i += 1 diff --git a/tests/seahubtests.sh b/tests/seahubtests.sh index bd20ef3b6e..d344368dd7 100755 --- a/tests/seahubtests.sh +++ b/tests/seahubtests.sh @@ -54,6 +54,12 @@ function start_seahub() { sleep 5 } +function make_dist() { + echo "Making dist files ..." + + make dist +} + function check_phantom_js() { if ! which phantomjs >/dev/null; then echo "Please install phantojs first:" @@ -71,7 +77,7 @@ function run_tests() { rvalue=$? if [[ ${TRAVIS} != "" ]]; then # On travis-ci, dump seahub logs when test finished - for logfile in /tmp/seahub*.log; do + for logfile in /tmp/ccnet/*.log /tmp/seafile-data/*.log /tmp/seahub*.log; do echo -e "\nLog file $logfile:\n" cat "${logfile}" echo @@ -87,6 +93,9 @@ case $1 in "runserver") start_seahub ;; + "dist") + make_dist + ;; "test") shift nose_opts=$*