Skip to content

Commit

Permalink
Merge branch 'develop' into bs/updated_codeowners
Browse files Browse the repository at this point in the history
  • Loading branch information
bsekachev authored Jan 23, 2025
2 parents fcea909 + 4191be3 commit be4ae52
Show file tree
Hide file tree
Showing 7 changed files with 102 additions and 33 deletions.
4 changes: 4 additions & 0 deletions changelog.d/20250123_161129_pr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
### Added

- Ability to set Django's secret key using an environment variable
(<https://github.com/cvat-ai/cvat/pull/8566>)
14 changes: 8 additions & 6 deletions cvat/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@

ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS', 'localhost,127.0.0.1').split(',')
INTERNAL_IPS = ['127.0.0.1']
SECRET_KEY = os.environ.get("DJANGO_SECRET_KEY", "")

def generate_secret_key():
"""
Expand Down Expand Up @@ -72,12 +73,13 @@ def generate_secret_key():
# Discard ours and use theirs.
pass

try:
sys.path.append(BASE_DIR)
from keys.secret_key import SECRET_KEY # pylint: disable=unused-import
except ModuleNotFoundError:
generate_secret_key()
from keys.secret_key import SECRET_KEY
if not SECRET_KEY:
try:
sys.path.append(BASE_DIR)
from keys.secret_key import SECRET_KEY # pylint: disable=unused-import
except ModuleNotFoundError:
generate_secret_key()
from keys.secret_key import SECRET_KEY

DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
INSTALLED_APPS = [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,7 @@ context('Canvas 3D functionality. Dump/upload annotation. "Point Cloud" format',
cy.verifyNotification();
cy.get('#cvat-objects-sidebar-state-item-1').should('exist');
cy.removeAnnotations();
cy.get('button').contains('Save').click();
cy.get('button').contains('Save').trigger('mouseout');
cy.clickSaveAnnotationView();
cy.get('#cvat-objects-sidebar-state-item-1').should('not.exist');
});

Expand All @@ -114,8 +113,7 @@ context('Canvas 3D functionality. Dump/upload annotation. "Point Cloud" format',
cy.openTaskJob(taskName);
cy.get('#cvat-objects-sidebar-state-item-1').should('exist');
cy.removeAnnotations();
cy.get('button').contains('Save').click();
cy.get('button').contains('Save').trigger('mouseout');
cy.clickSaveAnnotationView();
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,7 @@ context('Canvas 3D functionality. Dump/upload annotation. "Velodyne Points" form
cy.closeNotification('.ant-notification-notice-info');
cy.get('#cvat-objects-sidebar-state-item-1').should('exist');
cy.removeAnnotations();
cy.get('button').contains('Save').click();
cy.get('button').contains('Save').trigger('mouseout');
cy.clickSaveAnnotationView();
});

it('Upload annotation to task.', () => {
Expand All @@ -114,8 +113,7 @@ context('Canvas 3D functionality. Dump/upload annotation. "Velodyne Points" form
cy.openTaskJob(taskName);
cy.get('#cvat-objects-sidebar-state-item-1').should('exist');
cy.removeAnnotations();
cy.get('button').contains('Save').click();
cy.get('button').contains('Save').trigger('mouseout');
cy.clickSaveAnnotationView();
});
});
});
15 changes: 2 additions & 13 deletions tests/cypress/e2e/issues_prs2/issue_8785_update_job_metadata.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,6 @@ import { taskName } from '../../support/const';
context('The UI remains stable even when the metadata request fails.', () => {
const issueId = '8785';

function clickDeleteFrame() {
cy.get('.cvat-player-delete-frame').click();
cy.get('.cvat-modal-delete-frame').within(() => {
cy.contains('button', 'Delete').click();
});
}
function clickSave() {
cy.get('button').contains('Save').click({ force: true });
cy.get('button').contains('Save').trigger('mouseout');
}

before(() => {
cy.checkDeletedFrameVisibility();
cy.openTaskJob(taskName);
Expand All @@ -44,10 +33,10 @@ context('The UI remains stable even when the metadata request fails.', () => {

cy.intercept(routeMatcher, badResponse).as('patchError');

clickDeleteFrame();
cy.clickDeleteFrameAnnotationView();
cy.get('.cvat-player-restore-frame').should('be.visible');

clickSave();
cy.clickSaveAnnotationView();
cy.wait('@patchError').then((intercept) => {
expect(intercept.response.body).to.equal(badResponse.body);
expect(intercept.response.statusCode).to.equal(badResponse.statusCode);
Expand Down
70 changes: 70 additions & 0 deletions tests/cypress/e2e/issues_prs2/issue_8872_delete_frame.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
// Copyright (C) CVAT.ai Corporation
//
// SPDX-License-Identifier: MIT

/// <reference types="cypress" />

import { taskName } from '../../support/const';

context('UI and job metadata work correctly when deleting frames', () => {
const chunkReloadPeriod = 100; // 100 ms
let defaultJobMetadataReloadPreiod;

describe('Attempt to delete any frame after repeated request to /data/meta/', () => {
before(() => {
cy.window().then((window) => {
defaultJobMetadataReloadPreiod = window.cvat.config.jobMetaDataReloadPeriod;
window.cvat.config.jobMetaDataReloadPeriod = chunkReloadPeriod;
});
});

it('Elapse job metadata reload period, delete a frame, validate UI state is and request body ', () => {
let frameNum = null;
function getCurrentFrameNumber() {
cy.get('.cvat-player-frame-selector').within(() => cy.get('[role="spinbutton"]')
.should('have.attr', 'aria-valuenow')
.then((valueFrameNow) => { frameNum = Number(valueFrameNow); }));
}

cy.intercept('GET', '/api/jobs/**/data/meta**').as('getMeta');
cy.intercept('PATCH', '/api/jobs/**/data/meta**').as('patchMeta');

cy.openTaskJob(taskName);
// Ensure first request is sent after loading the job
cy.wait('@getMeta');

cy.goToNextFrame(1);
cy.wait('@getMeta');
getCurrentFrameNumber();

cy.clickDeleteFrameAnnotationView();
cy.get('.cvat-player-restore-frame').should('not.exist');

// Save and intercept request to confirm validate deleted frames
cy.clickSaveAnnotationView();
cy.wait('@patchMeta').then((interceptDeleted) => {
const deletedFrames = interceptDeleted.request.body.deleted_frames;

// Check old frame is unavailable
cy.checkFrameNum(frameNum + 1);

// Check deleted frame are correct
expect(deletedFrames).to.include(frameNum);
});
// Restore state and save
// Validate UI and that no frames are marked deleted
cy.contains('.cvat-annotation-header-button', 'Undo').click();
cy.clickSaveAnnotationView();
cy.wait('@patchMeta').then((interceptRestored) => {
const deletedFrames = interceptRestored.request.body.deleted_frames;
cy.wrap(deletedFrames).should('be.empty');
cy.checkFrameNum(frameNum);
});
});
after(() => {
cy.window().then((window) => {
window.cvat.config.jobMetaDataReloadPeriod = defaultJobMetadataReloadPreiod;
});
});
});
});
20 changes: 14 additions & 6 deletions tests/cypress/support/commands.js
Original file line number Diff line number Diff line change
Expand Up @@ -413,8 +413,7 @@ Cypress.Commands.add('openTask', (taskName, projectSubsetFieldValue) => {

Cypress.Commands.add('saveJob', (method = 'PATCH', status = 200, as = 'saveJob') => {
cy.intercept(method, '/api/jobs/**').as(as);
cy.get('button').contains('Save').click({ force: true });
cy.get('button').contains('Save').trigger('mouseout');
cy.clickSaveAnnotationView();
cy.wait(`@${as}`).its('response.statusCode').should('equal', status);
});

Expand Down Expand Up @@ -1434,10 +1433,7 @@ Cypress.Commands.add('deleteFrame', (action = 'delete') => {
if (action === 'restore') {
cy.get('.cvat-player-restore-frame').click();
} else if (action === 'delete') {
cy.get('.cvat-player-delete-frame').click();
cy.get('.cvat-modal-delete-frame').within(() => {
cy.contains('button', 'Delete').click();
});
cy.clickDeleteFrameAnnotationView();
}
cy.saveJob('PATCH', 200);
cy.wait('@patchMeta').its('response.statusCode').should('equal', 200);
Expand Down Expand Up @@ -1718,3 +1714,15 @@ Cypress.Commands.overwrite('reload', (orig, options) => {
orig(options);
cy.closeModalUnsupportedPlatform();
});

Cypress.Commands.add('clickDeleteFrameAnnotationView', () => {
cy.get('.cvat-player-delete-frame').click();
cy.get('.cvat-modal-delete-frame').within(() => {
cy.contains('button', 'Delete').click();
});
});

Cypress.Commands.add('clickSaveAnnotationView', () => {
cy.get('button').contains('Save').click();
cy.get('button').contains('Save').trigger('mouseout');
});

0 comments on commit be4ae52

Please sign in to comment.