From df389e81c7146baf1ebe6c6c31b45ebe3789d16e Mon Sep 17 00:00:00 2001 From: yackob03 Date: Wed, 5 Feb 2014 20:01:23 -0500 Subject: [PATCH] Fix up the test endpoints with better fake data. Install them at a known location. Update the building test repository to point to the new fakes. --- endpoints/test.py | 82 +++++++++++++++++++++++++++++++++-------- initdb.py | 18 ++++----- requirements-nover.txt | 3 +- requirements.txt | 1 + test/data/test.db | Bin 142336 -> 142336 bytes 5 files changed, 77 insertions(+), 27 deletions(-) diff --git a/endpoints/test.py b/endpoints/test.py index bbd9e286a..1308a6b46 100644 --- a/endpoints/test.py +++ b/endpoints/test.py @@ -1,9 +1,10 @@ import math from random import SystemRandom -from flask import jsonify -from app import app +from flask import jsonify, request +from loremipsum import get_sentences +from endpoints.api import api def generate_image_completion(rand_func): images = {} @@ -18,16 +19,10 @@ def generate_image_completion(rand_func): return images -@app.route('/test/build/status', methods=['GET']) -def generate_random_build_status(): +def generate_fake_status(): response = { - 'id': 1, - 'total_commands': None, - 'current_command': None, - 'push_completion': 0.0, + 'id': 'deadbeef-dead-beef-dead-beefdeadbeef', 'status': None, - 'message': None, - 'image_completion': {}, } random = SystemRandom() @@ -38,9 +33,7 @@ def generate_random_build_status(): 'current_command': 0, }, 'initializing': {}, - 'error': { - 'message': 'Oops!' - }, + 'error': {}, 'complete': {}, 'building': { 'total_commands': 7, @@ -55,7 +48,64 @@ def generate_random_build_status(): } phase = random.choice(phases.keys()) - response['status'] = phase - response.update(phases[phase]) + response['phase'] = phase + response['status'] = (phases[phase]) - return jsonify(response) + return response + + +BASE_BUILDING_URL = '/repository/devtable/building/build/' + + +@api.route(BASE_BUILDING_URL, methods=['GET']) +def get_fake_repo_build_status_list(): + return jsonify({'builds': [generate_fake_status()]}) + + +@api.route(BASE_BUILDING_URL + 'deadbeef-dead-beef-dead-beefdeadbeef/logs', + methods=['GET']) +def get_fake_repo_build_logs(): + start = int(request.args.get('start', 0)) + end = int(request.args.get('end', 0)) + had_start = 'start' in request.args + had_end = 'end' in request.args + + adv_start = 0 + adv_end = 0 + adv_total = 0 + lorem_logs = [] + + if had_start and had_end: + numlogs = end - start + 1 + adv_start = start + adv_end = end + adv_total = end + 1 + lorem_logs = get_sentences(numlogs) + elif had_start: + adv_start = start + adv_end = start + 9 + lorem_logs = get_sentences(10) + adv_total = adv_end + 1 + elif had_end: + adv_start = max(0, (end - 9)) + adv_end = end + adv_total = end + 1 + lorem_logs = get_sentences(adv_end - adv_start + 1) + else: + adv_start = 100 + adv_end = 109 + adv_total = 110 + lorem_logs = get_sentences(10) + + return jsonify({ + 'start': adv_start, + 'end': adv_end, + 'total': adv_total, + 'logs': [{'message': sentence} for sentence in lorem_logs] + }) + + +@api.route(BASE_BUILDING_URL + '/deadbeef-dead-beef-dead-beefdeadbeef/status', + methods=['GET']) +def get_fake_repo_build_status(): + return jsonify(generate_fake_status()) diff --git a/initdb.py b/initdb.py index 0cdb5f91a..f5001326f 100644 --- a/initdb.py +++ b/initdb.py @@ -275,6 +275,12 @@ def populate_database(): 'Empty repository which is building.', False, [], (0, [], None)) + token = model.create_access_token(building, 'write') + tag = 'ci.devtable.com:5000/%s/%s' % (building.namespace, building.name) + build = model.create_repository_build(building, token, '123-45-6789', tag) + build.uuid = 'deadbeef-dead-beef-dead-beefdeadbeef' + build.save() + org = model.create_organization('buynlarge', 'quay@devtable.com', new_user_1) org.stripe_id = TEST_STRIPE_ID @@ -298,19 +304,11 @@ def populate_database(): model.add_user_to_team(new_user_2, reader_team) model.add_user_to_team(reader, reader_team) - token = model.create_access_token(building, 'write') - tag = 'ci.devtable.com:5000/%s/%s' % (building.namespace, building.name) - build = model.create_repository_build(building, token, '123-45-6789', tag) - - build.build_node_id = 1 - build.phase = 'building' - build.status_url = 'http://localhost:5000/test/build/status' - build.save() - __generate_repository(new_user_1, 'superwide', None, False, [], [(10, [], 'latest2'), (2, [], 'latest3'), - (2, [(1, [], 'latest11'), (2, [], 'latest12')], 'latest4'), + (2, [(1, [], 'latest11'), (2, [], 'latest12')], + 'latest4'), (2, [], 'latest5'), (2, [], 'latest6'), (2, [], 'latest7'), diff --git a/requirements-nover.txt b/requirements-nover.txt index d582eae27..5b1ef8841 100644 --- a/requirements-nover.txt +++ b/requirements-nover.txt @@ -21,4 +21,5 @@ xhtml2pdf logstash_formatter redis hiredis -git+https://github.com/dotcloud/docker-py.git \ No newline at end of file +git+https://github.com/dotcloud/docker-py.git +loremipsum \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index b14c07bd6..8d9670b67 100644 --- a/requirements.txt +++ b/requirements.txt @@ -23,6 +23,7 @@ html5lib==1.0b3 itsdangerous==0.23 lockfile==0.9.1 logstash-formatter==0.5.8 +loremipsum==1.0.2 marisa-trie==0.5.1 mixpanel-py==3.1.1 mock==1.0.1 diff --git a/test/data/test.db b/test/data/test.db index 6062f0e97acdba97e216177332b9f6bd35f1664e..d1cec14338ad0ec574d41ebf9dced84abe6b68fb 100644 GIT binary patch delta 3321 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 bST&BD9~@_XM0&^ZlfphW9w5FX3ef)mjAHu9 delta 3331 zcmbtVc~n&A6`%XwHv_|tC@v@}ghk9O@4b0%-l!)E%nZvg%rL+V1E)C-vk(X(prF{( zs>w-=OZ6l)ekN&*nkG4En`7d_XRN79s%cs+1(Vj8CdS020jvuZm#EYC)EFxsPfz@7 z&i(zqd++c2-TS>+awKxek;r%Txw9NL17oW)I5|6)XEECahBcdc(JlxDo(i`q&rzOR zTwTHx6$s_Ug(Bn07rkzqn=Q3F%Z!3((U)~L=eqe8SG(O8$}6yz)Vmo=bBLSE3p?hvHr1AhjwYwp?rvx-(0LYETtc0vvnp>YUmj@j1=?&2>%1=Cyw*mG zXyzROZ6Huy>se6eHSo5MR;SSx^ajc+&8-a%--7vkdt2v@yewYq2ox=FwifG5_A0;I zyl9cTve6qfm$1$G!3N#JKvi{7`<%iit9g!np2<}gaI`Ysj?R(!{49qd*JBX8Rb_UI zyU4)kOKjf!0@33rwUxSfTScCw*yu6|hSEZ}&E>XRD)S1eoub+6;;a@6Q(`rDF3%s& z&(RvJHa6GbtZ#F*m$bFbH`LB+47%%_-qKQ|w!+6cTjyBH>I)jGtLEE^Li&1tvxnV! zG+#Rs(VM9ATVtyFsD~e$P}B0z*V%fyW(~dgVK=A{R0@Elu@v>A?2W$5-z~G%k@Wj? z%htr0AdNSy1Jz>cVdYU)r6f-Mj$SXQqIgaQGL!Ow{rpFd>M z=!Ht`rh z2R9Qy0TF^f1tXNlI~dv>U8e} zlU}G5IiKX5NvPErSl*!V8T2NNgo=7z5Ce=6AD9T7vbL?hF+i?QgkyC2|B*z(=};Dv zaOXn2)+iY*;Msa89FBg$z!a=!0O6B*$R5s1St(d#Aa6J&rRLym42-=mH8Y9PaQg3E zy-P$2E@mM+ku}}R-IVe>7IN;xoo1mTkrnSvk<=yQS`M`L;WlzGZ8%H@I5;$J@xAUa z(W!JU4Bv*^x|yg4)9MG)k@wPzZ|&Om)gyl3?_(OHx|<&68>4(MjsAzeWnrPT=-)S| z@5A3kQxoW1^(|u<&9DiOumhAlGVO0@CXvs;2tbLc7pIZbXCWStGQxTpGt1!5$k>y% zpM;k|HK6z{=AHN_%b^=3T8~Cz{R-HFW^9Z9Ir+~DhyXOE|N0|1yb}J2#`VwLOOCCQ z3#Fe*coARt1q>klnkE(bdNm{h;=5;TBA3>H3Q$_}m~8}}ha^CwXT7+LjCn!Miuv}@ zpW>;V@G;_Q>(-FVolvAk(d~X0w!8|xC>b?u#wqJz9~!w=kw}iOmy1ScyzvYkdJVor z+F#Ooa%2O<0UB99WeV=w2>obsoG_Dowh5A@lQZ7@Eg5_rZUD+AJ&}0hZb%}LZ$dPn znM&PuJo+s-f-(y)&}8r}IERoncJBfC&_t|y2Y!zjfzWa|o*aJ%5FpKSFAT}?SWIn( z6KG;)@1PtecfAWufDAdGyd;O&q^qs2TI9~zb!M9!G0J-Xsm0DoAjNN#U>9euf>})<#c}=Q#zjbxES>fog(qBsPtjO+#&kS%39cZRS~C})y()c$)mLCILT~4~Z-(T= z75O!fcJ!#^_$tZ>Ogc->d{hoMx7#*SE4 zfy>W|N^vO4=at@cKbaMNubF zTsS?J^hZ(BXc={5n)Ej=^YNBd8%cDmjAlGlzm`mlqogH4VoM*^#Zw1S(*C#KBjI>z zwh}Q1_;TzYC4suLK|AJ>sa=TuO}32;Cd-vFhiX0`;nCCugsACfUndvGQ)+3on#Q$Z zDpl&A{NCjr(w{1K5(+z3k?=%H`a(@F>rxW+WJ>zPJcd47NmA3~{$k9MGOSIf4xyYi sVX1#Q^|;KxCnQ|>e>Zy=t8vnW9S1va