рдЯреНрд░реИрд╡рд┐рд╕-рд╕реАрдЖрдИ рдФрд░ рдбреНрд░реЛрди.рдЖрдИрдУ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рд░реЗрдЦрд╛рдВрдХрди


рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдореИрдВрдиреЗ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдмрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ: рдкрд░реАрдХреНрд╖рдг, рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рддреИрдирд╛рддреАред рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдЯреНрд░реИрд╡рд┐рд╕-рд╕реА (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдбреНрд░реЛрди редio) 1 рдФрд░ 3 рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдХреЛрдИ рджреГрд╢реНрдп рдирд╣реАрдВ рд╣реИред

рдФрд░ рддреБрд░рдВрдд рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдпрд╛:


рдФрд░ рдпрд╣ рд╕рдм рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЖрд╡реЗрджрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реБрдЖ - coviolations.io ( рд╕рд░реНрд╡рд░ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд░реЛрдд), рдЕрдм рдпрд╣


рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХреИрд╕реЗ рдЬреБрдбрд╝реЗ?


рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ .covio.yml рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
 violations: pep8: pep8 . --exclude='*migrations*' sloccount: sloccount . pip_review: pip-review py_unittest: cat python_tests.txt testem: cat testem.out 

рдЬрд╣рд╛рдВ рдмрд╛рдИрдВ рдУрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдирд╛рдо рд╣реИ, рдФрд░ рджрд╛рдИрдВ рдУрд░ рдЗрд╕рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЖрджреЗрд╢ рд╣реИред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдмрдВрдзрди рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдФрд░ рдПрдХ covio рдХреЙрд▓ рдЬреЛрдбрд╝реЗрдВред
.travis.yml рдпрд╣ рд╣реЛрдЧрд╛:
 after_script: - pip install coviolations_app - covio 

рдФрд░ droner.io рдФрд░ рдЬреЗрдирдХрд┐рдиреНрд╕ рдХреЗ рд▓рд┐рдП:
 pip install coviolations_app COVIO_TOKEN="token" covio 

token рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдХреЛрдИ рдкрд╛рд░реНрд╕рд░ рдирд╣реАрдВ рд╣реИ?


рдЕрдЧрд░ рдХрд┐рд╕реА рдкрд╛рд░реНрд╕рд░ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдкрд╛рд░реНрд╕рд░ рд╣реА рдЕрдЬрдЧрд░ рдореЗрдВ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рд╣реИ:
 from tasks.const import STATUS_SUCCESS, STATUS_FAILED from .base import library @library.register(' ') def parse_violation(data): # data['raw'] -    data['preview'] = data['raw'][:10] #    data['prepared'] = data['raw'] + '!' #    data['status'] = STATUS_SUCCESS #  STATUS_FAILED,    data['plot'] = { #      'lines_count': len(data['raw'].split('\n')), 'random_value': 5, } return data 

рдЙрдкрд▓рдмреНрдз рдкрд╛рд░реНрд╕рд░ рдЙрд▓реНрд▓рдВрдШрди рдореЗрдВ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВред

рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ?




рд╕рд░реНрд╡рд░ рдкрд╛рд░реНрдЯ рдХреЛ django рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдкреА рдХреЛ tastypie рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЖрд░рдПрд╕реА рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЧрдП рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рдвреЗрд░ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рд╕рднреА рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕рдВрдЪрд╛рд░ рд░реЗрдбрд┐рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдХреЛ рдореЛрдВрдЧреЛрдбрдм рдФрд░ рдкреЛрд╕реНрдЯрдЧреНрд░реИрд╕реНрдХрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдмреИрдХрдмреЛрди.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЪрд╛рд░реНрдЯ.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд╛рд░реНрдЯ рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ ред рдХреНрд▓рд╛рдЗрдВрдЯ рдмрд╛рдХреА рдПрдкреАрдЖрдИ рдФрд░ sockjs рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ ред

рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдП?


рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдХреНрд▓реЛрди рдХрд░реЗрдВ, рдХрдкрдбрд╝реЗ рдФрд░ рдмреЛрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
 git clone https://github.com/nvbn/coviolations_web.git pip install fabric npm install bower 

рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ coviolations_web/settings/dist.py рд╕реЗ coviolations_web/settings/local.py рдФрд░ рднрд░реЗрдВред Local_nvbn.py рдореЗрдВ рдореЗрд░реА рд╕реНрдерд╛рдиреАрдп рд╕реЗрдЯрд┐рдВрдЧ рд╣реИрдВ, рдореЗрдВ local_production.py рдЙрддреНрдкрд╛рджрди рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧ рд╣реИрдВред

рдФрд░ рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде рддреИрдирд╛рдд:
 fab install 

рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
 ./manage.py test violations projects tasks services app push 

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рдХрдорд╛рдВрдб рдПрдХ рдЕрд▓рдЧ рдХрдВрд╕реЛрд▓ рдореЗрдВ):
 ./manage.py runserver ./manage.py runpush ./manage.py rqworker 

рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рддреИрдирд╛рдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП covio рд╕реЗ рдкрд░рд┐рдгрд╛рдо рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП .covio.yml рдЬреЛрдбрд╝реЗрдВ:
 endpoint: http://localhost:8000/api/v1/tasks/ 


рдпреЛрдЬрдирд╛рдУрдВ


рдЕрдм рд╕рдВрдЧрдарди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЙрди рдкрд░ рдФрд░ рдХрдИ, рдХрдИ рдкрд╛рд░реНрд╕рд░реНрд╕ рдкрд░ рд╕реНрд╡рдд: рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдореИрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рдХреЛрдб рдореЗрдВ рдПрдиреЛрдЯреЗрд╢рди рднреА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛рд╣реАрди рд╣реИред

рд╕рдВрджрд░реНрдн


Source: https://habr.com/ru/post/In193394/


All Articles