Cypress test. Connected file share. (#3764)

* Cypress test case 106. docker-compose for file share.

* Continue writing the test

* Added class to reducer

* Case 106. Added check issue 3733

* Updated yml files

* debug

* Fix renaming a image

* Remove debug

* Update the test

* Added comment

* Rename test case/file/images

* Added assert.

* Applying comments

* Apply comments
main
Dmitry Kruchinin 4 years ago committed by GitHub
parent 55db93e01a
commit e8b3284882
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -158,9 +158,9 @@ jobs:
DJANGO_SU_PASSWORD: '12qwaszx'
API_ABOUT_PAGE: "localhost:8080/api/v1/server/about"
run: |
docker-compose -f docker-compose.yml -f docker-compose.dev.yml -f components/serverless/docker-compose.serverless.yml up -d
docker-compose -f docker-compose.yml -f docker-compose.dev.yml -f components/serverless/docker-compose.serverless.yml -f tests/docker-compose.file_share.yml up -d
/bin/bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' ${API_ABOUT_PAGE})" != "401" ]]; do sleep 5; done'
docker exec -i cvat /bin/bash -c "echo \"from django.contrib.auth.models import User; User.objects.create_superuser('${DJANGO_SU_NAME}', '${DJANGO_SU_EMAIL}', '${DJANGO_SU_PASSWORD}')\" | python3 ~/manage.py shell" docker exec -i cvat /bin/bash -c "echo \"from django.contrib.auth.models import User; User.objects.create_superuser('${DJANGO_SU_NAME}', '${DJANGO_SU_EMAIL}', '${DJANGO_SU_PASSWORD}')\" | python3 ~/manage.py shell"
docker exec -i cvat /bin/bash -c "echo \"from django.contrib.auth.models import User; User.objects.create_superuser('${DJANGO_SU_NAME}', '${DJANGO_SU_EMAIL}', '${DJANGO_SU_PASSWORD}')\" | python3 ~/manage.py shell"
cd ./tests
npm ci
if [[ ${{ github.ref }} == 'refs/heads/develop' ]]; then

@ -31,7 +31,7 @@ jobs:
API_ABOUT_PAGE: "localhost:8080/api/v1/server/about"
run: |
docker-compose -f docker-compose.yml -f docker-compose.dev.yml build
docker-compose -f docker-compose.yml -f docker-compose.dev.yml -f components/serverless/docker-compose.serverless.yml up -d
docker-compose -f docker-compose.yml -f docker-compose.dev.yml -f components/serverless/docker-compose.serverless.yml -f tests/docker-compose.file_share.yml up -d
/bin/bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' ${API_ABOUT_PAGE})" != "401" ]]; do sleep 5; done'
docker exec -i cvat /bin/bash -c "echo \"from django.contrib.auth.models import User; User.objects.create_superuser('${DJANGO_SU_NAME}', '${DJANGO_SU_EMAIL}', '${DJANGO_SU_PASSWORD}')\" | python3 ~/manage.py shell"
cd ./tests

@ -18,7 +18,7 @@ jobs:
DJANGO_SU_PASSWORD: "12qwaszx"
API_ABOUT_PAGE: "localhost:8080/api/v1/server/about"
run: |
docker-compose -f docker-compose.yml -f docker-compose.dev.yml -f ./tests/docker-compose.email.yml -f components/serverless/docker-compose.serverless.yml up -d --build
docker-compose -f docker-compose.yml -f docker-compose.dev.yml -f ./tests/docker-compose.email.yml -f tests/docker-compose.file_share.yml -f components/serverless/docker-compose.serverless.yml up -d --build
/bin/bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' ${API_ABOUT_PAGE})" != "401" ]]; do sleep 5; done'
docker exec -i cvat /bin/bash -c "echo \"from django.contrib.auth.models import User; User.objects.create_superuser('${DJANGO_SU_NAME}', '${DJANGO_SU_EMAIL}', '${DJANGO_SU_PASSWORD}')\" | python3 ~/manage.py shell"
- name: End-to-end testing

@ -1162,6 +1162,7 @@ export default function (state = defaultState, action: AnyAction): Notifications
jobFetching: {
message: 'Could not fetch frame data from the server',
reason: action.payload.error,
className: 'cvat-notification-notice-fetch-frame-data-from-the-server-failed',
},
},
},

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@ -0,0 +1,92 @@
// Copyright (C) 2021 Intel Corporation
//
// SPDX-License-Identifier: MIT
/// <reference types="cypress" />
context('Connected file share.', () => {
const caseId = '107';
const taskName = `Case ${caseId}`;
const labelName = taskName;
let stdoutToList;
const assetLocalPath = `cypress/integration/actions_tasks3/assets/case_${caseId}`;
function createOpenTaskWithShare() {
cy.get('#cvat-create-task-button').should('be.visible').click();
cy.get('#name').type(taskName);
cy.addNewLabel(labelName);
cy.contains('[role="tab"]', 'Connected file share').click();
cy.get('.cvat-share-tree')
.should('be.visible')
.within(() => {
cy.get('[aria-label="plus-square"]').click();
cy.exec('docker exec -i cvat /bin/bash -c "ls ~/share"').then((command) => {
stdoutToList = command.stdout.split('\n');
// [image_case_107_1.png, image_case_107_2.png, image_case_107_3.png]
expect(stdoutToList.length).to.be.eq(3);
// Number of images to select + selection of all images.
cy.get('[title]').should('have.length', stdoutToList.length + 1);
stdoutToList.forEach((el) => {
cy.get(`[title="${el}"]`).should('exist');
// Click on the checkboxes
cy.get(`[title="${el}"]`).prev().click().should('have.attr', 'class').and('contain', 'checked');
});
});
});
cy.contains('button', 'Submit').click();
cy.get('.cvat-notification-create-task-success').should('exist').find('button').click();
cy.get('.cvat-notification-create-task-success').should('exist').find('[data-icon="close"]').click();
cy.get('.cvat-task-details').should('exist');
}
before(() => {
cy.visit('auth/login');
cy.login();
});
afterEach(() => {
cy.goToTaskList();
cy.deleteTask(taskName);
});
after(() => {
// Renaming to the original name
cy.exec(`mv ${assetLocalPath}/${stdoutToList[0]}.bk ${assetLocalPath}/${stdoutToList[0]}`);
});
describe(`Testing case "${caseId}"`, () => {
it('Create a task with "Connected file share".', () => {
createOpenTaskWithShare();
cy.openJob();
cy.get('.cvat-player-filename-wrapper').then((playerFilenameWrapper) => {
for (let el = 0; el < stdoutToList.length; el++) {
cy.get(playerFilenameWrapper).should('have.text', stdoutToList[el]);
cy.checkFrameNum(el);
cy.get('.cvat-player-next-button').click().trigger('mouseout');
}
});
});
it('Check "Fix problem with getting share data for the task when data not available more in Firefox".', () => {
cy.goToTaskList();
createOpenTaskWithShare();
// Rename the image
cy.exec(`mv ${assetLocalPath}/${stdoutToList[0]} ${assetLocalPath}/${stdoutToList[0]}.bk`).then(
(fileRenameCommand) => {
expect(fileRenameCommand.code).to.be.eq(0);
},
);
cy.exec(`docker exec -i cvat /bin/bash -c "find ~/share -name "*.png" -type f"`).then(
(findFilesCommand) => {
// [image_case_107_2.png, image_case_107_3.png]
expect(findFilesCommand.stdout.split('\n').length).to.be.eq(2);
},
);
cy.openJob();
cy.get('.cvat-annotation-header').should('exist');
// Error: . "\"No such file or directory /home/django/share/image_case_107_1.png\"".
cy.get('.cvat-notification-notice-fetch-frame-data-from-the-server-failed').should('exist');
cy.closeNotification('.cvat-notification-notice-fetch-frame-data-from-the-server-failed');
});
});
});

@ -0,0 +1,15 @@
version: '3.3'
services:
cvat:
environment:
CVAT_SHARE_URL: 'Mounted from asset for case 107 host directory'
volumes:
- cvat_share:/home/django/share:rw
volumes:
cvat_share:
driver_opts:
type: none
device: tests/cypress/integration/actions_tasks3/assets/case_107
o: bind
Loading…
Cancel
Save