Cypress test. Import annotations for frames with dots in the name. (#3111)
* Add css class * Cypress test. Import annotations for frames with dots in name.main
parent
38b774046d
commit
d012c708a2
@ -0,0 +1,108 @@
|
|||||||
|
// Copyright (C) 2021 Intel Corporation
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
/// <reference types="cypress" />
|
||||||
|
|
||||||
|
context('Import annotations for frames with dots in name.', { browser: '!firefox' }, () => {
|
||||||
|
const issueId = '2473';
|
||||||
|
const labelName = `Issue ${issueId}`;
|
||||||
|
const taskName = labelName;
|
||||||
|
const attrName = `Attr for ${labelName}`;
|
||||||
|
const textDefaultValue = 'Some default value for type Text';
|
||||||
|
const imagesCount = 1;
|
||||||
|
const imageFileName = `image.${labelName.replace(' ', '_').toLowerCase()}`; // Dot in the image name
|
||||||
|
const width = 800;
|
||||||
|
const height = 800;
|
||||||
|
const posX = 10;
|
||||||
|
const posY = 10;
|
||||||
|
const color = 'gray';
|
||||||
|
const archiveName = `${imageFileName}.zip`;
|
||||||
|
const archivePath = `cypress/fixtures/${archiveName}`;
|
||||||
|
const imagesFolder = `cypress/fixtures/${imageFileName}`;
|
||||||
|
const directoryToArchive = imagesFolder;
|
||||||
|
|
||||||
|
const createRectangleShape2Points = {
|
||||||
|
points: 'By 2 Points',
|
||||||
|
type: 'Shape',
|
||||||
|
labelName: labelName,
|
||||||
|
firstX: 250,
|
||||||
|
firstY: 350,
|
||||||
|
secondX: 350,
|
||||||
|
secondY: 450,
|
||||||
|
};
|
||||||
|
|
||||||
|
const dumpType = 'YOLO';
|
||||||
|
let annotationArchiveName = '';
|
||||||
|
|
||||||
|
function confirmUpdate(modalWindowClassName) {
|
||||||
|
cy.get(modalWindowClassName).within(() => {
|
||||||
|
cy.contains('button', 'Update').click();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
before(() => {
|
||||||
|
cy.visit('auth/login');
|
||||||
|
cy.login();
|
||||||
|
cy.imageGenerator(imagesFolder, imageFileName, width, height, color, posX, posY, labelName, imagesCount);
|
||||||
|
cy.createZipArchive(directoryToArchive, archivePath);
|
||||||
|
cy.createAnnotationTask(
|
||||||
|
taskName,
|
||||||
|
labelName,
|
||||||
|
attrName,
|
||||||
|
textDefaultValue,
|
||||||
|
archiveName,
|
||||||
|
);
|
||||||
|
cy.openTaskJob(taskName);
|
||||||
|
cy.createRectangle(createRectangleShape2Points);
|
||||||
|
});
|
||||||
|
|
||||||
|
after(() => {
|
||||||
|
cy.goToTaskList();
|
||||||
|
cy.deleteTask(taskName);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe(`Testing case "${issueId}"`, () => {
|
||||||
|
it('Save job. Dump annotaion to YOLO format. Remove annotation. Save job.', () => {
|
||||||
|
cy.saveJob('PATCH', 200, 'saveJobDump');
|
||||||
|
cy.intercept('GET', '/api/v1/tasks/**/annotations**').as('dumpAnnotations');
|
||||||
|
cy.interactMenu('Dump annotations');
|
||||||
|
cy.get('.cvat-menu-dump-submenu-item').within(() => {
|
||||||
|
cy.contains(dumpType).click();
|
||||||
|
});
|
||||||
|
cy.wait('@dumpAnnotations', { timeout: 5000 }).its('response.statusCode').should('equal', 202);
|
||||||
|
cy.wait('@dumpAnnotations').its('response.statusCode').should('equal', 201);
|
||||||
|
cy.removeAnnotations();
|
||||||
|
cy.saveJob('PUT');
|
||||||
|
cy.get('#cvat_canvas_shape_1').should('not.exist');
|
||||||
|
cy.get('#cvat-objects-sidebar-state-item-1').should('not.exist');
|
||||||
|
|
||||||
|
cy.task('listFiles', 'cypress/fixtures').each((fileName) => {
|
||||||
|
if (fileName.includes(dumpType.toLowerCase())) {
|
||||||
|
annotationArchiveName = fileName;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Upload annotation with YOLO format to job.', () => {
|
||||||
|
cy.interactMenu('Upload annotations');
|
||||||
|
cy.contains('.cvat-menu-load-submenu-item', dumpType.split(' ')[0])
|
||||||
|
.should('be.visible')
|
||||||
|
.within(() => {
|
||||||
|
cy.get('.cvat-menu-load-submenu-item-button')
|
||||||
|
.click()
|
||||||
|
.get('input[type=file]')
|
||||||
|
.attachFile(annotationArchiveName);
|
||||||
|
});
|
||||||
|
cy.intercept('PUT', '/api/v1/jobs/**/annotations**').as('uploadAnnotationsPut');
|
||||||
|
cy.intercept('GET', '/api/v1/jobs/**/annotations**').as('uploadAnnotationsGet');
|
||||||
|
confirmUpdate('.cvat-modal-content-load-job-annotation');
|
||||||
|
cy.wait('@uploadAnnotationsPut', { timeout: 5000 }).its('response.statusCode').should('equal', 202);
|
||||||
|
cy.wait('@uploadAnnotationsPut').its('response.statusCode').should('equal', 201);
|
||||||
|
cy.wait('@uploadAnnotationsGet').its('response.statusCode').should('equal', 200);
|
||||||
|
cy.get('.cvat-notification-notice-upload-annotations-fail').should('not.exist');
|
||||||
|
cy.get('#cvat_canvas_shape_1').should('exist');
|
||||||
|
cy.get('#cvat-objects-sidebar-state-item-1').should('exist');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue