FriendsOfCake / cakephp-upload

CakePHP: Handle file uploading sans ridiculous automagic
https://cakephp-upload.readthedocs.io/
MIT License
551 stars 255 forks source link

Tests fails when this plugin is used on a table with Dynamic Fixture. #484

Closed alysson-azevedo closed 6 years ago

alysson-azevedo commented 6 years ago

I use dynamic fixture. But on my UsersTable i also use this plugin.

But it fails to get the table schama because the 'users' table still doesn't exists.

See the logs:

2018-04-02 14:12:26 Error: [Cake\Database\Exception] Cannot describe users. It has 0 columns. in /home/alysson/rx/vendor/cakephp/cakephp/src/Database/Schema/Collection.php on line 99
Stack Trace:
#0 /home/alysson/rx/vendor/cakephp/cakephp/src/Database/Schema/CachedCollection.php(63): Cake\Database\Schema\Collection->describe('users', Array)
#1 /home/alysson/rx/vendor/cakephp/cakephp/src/ORM/Table.php(532): Cake\Database\Schema\CachedCollection->describe('users')
#2 /home/alysson/rx/vendor/cakephp/cakephp/src/ORM/Table.php(589): Cake\ORM\Table->getSchema()
#3 /home/alysson/rx/vendor/josegonzalez/cakephp-upload/src/Model/Behavior/UploadBehavior.php(44): Cake\ORM\Table->schema()
#4 /home/alysson/rx/vendor/cakephp/cakephp/src/ORM/Behavior.php(167): Josegonzalez\Upload\Model\Behavior\UploadBehavior->initialize(Array)
#5 /home/alysson/rx/vendor/cakephp/cakephp/src/ORM/BehaviorRegistry.php(146): Cake\ORM\Behavior->__construct(Object(Rx\Model\Table\UsersTable), Array)
#6 /home/alysson/rx/vendor/cakephp/cakephp/src/Core/ObjectRegistry.php(96): Cake\ORM\BehaviorRegistry->_create('Josegonzalez\\Up...', 'Upload', Array)
#7 /home/alysson/rx/vendor/cakephp/cakephp/src/ORM/Table.php(826): Cake\Core\ObjectRegistry->load('Josegonzalez/Up...', Array)
#8 /home/alysson/rx/src/Model/Table/UsersTable.php(66): Cake\ORM\Table->addBehavior('Josegonzalez/Up...', Array)
#9 /home/alysson/rx/vendor/cakephp/cakephp/src/ORM/Table.php(291): Rx\Model\Table\UsersTable->initialize(Array)
#10 /home/alysson/rx/vendor/cakephp/cakephp/src/ORM/Locator/TableLocator.php(249): Cake\ORM\Table->__construct(Array)
#11 /home/alysson/rx/vendor/cakephp/cakephp/src/ORM/Locator/TableLocator.php(216): Cake\ORM\Locator\TableLocator->_create(Array)
#12 /home/alysson/rx/vendor/cakephp/cakephp/src/ORM/TableRegistry.php(132): Cake\ORM\Locator\TableLocator->get('Users', Array)
#13 /home/alysson/rx/vendor/cakephp/cakephp/src/TestSuite/Fixture/TestFixture.php(224): Cake\ORM\TableRegistry::get('Users')
#14 /home/alysson/rx/vendor/cakephp/cakephp/src/TestSuite/Fixture/TestFixture.php(147): Cake\TestSuite\Fixture\TestFixture->_schemaFromImport()
#15 /home/alysson/rx/tests/Fixture/UsersFixture.php(638): Cake\TestSuite\Fixture\TestFixture->init()
#16 /home/alysson/rx/vendor/cakephp/cakephp/src/TestSuite/Fixture/TestFixture.php(111): Rx\Test\Fixture\UsersFixture->init()
#17 /home/alysson/rx/vendor/cakephp/cakephp/src/TestSuite/Fixture/FixtureManager.php(220): Cake\TestSuite\Fixture\TestFixture->__construct()
#18 /home/alysson/rx/vendor/cakephp/cakephp/src/TestSuite/Fixture/FixtureManager.php(104): Cake\TestSuite\Fixture\FixtureManager->_loadFixtures(Object(RxHooks\Test\TestCase\Controller\Sl20WebhooksControllerTest))
#19 /home/alysson/rx/vendor/cakephp/cakephp/src/TestSuite/Fixture/FixtureInjector.php(97): Cake\TestSuite\Fixture\FixtureManager->fixturize(Object(RxHooks\Test\TestCase\Controller\Sl20WebhooksControllerTest))
#20 /home/alysson/rx/vendor/phpunit/phpunit/src/Framework/TestResult.php(395): Cake\TestSuite\Fixture\FixtureInjector->startTest(Object(RxHooks\Test\TestCase\Controller\Sl20WebhooksControllerTest))
#21 /home/alysson/rx/vendor/phpunit/phpunit/src/Framework/TestResult.php(637): PHPUnit\Framework\TestResult->startTest(Object(RxHooks\Test\TestCase\Controller\Sl20WebhooksControllerTest))
#22 /home/alysson/rx/vendor/phpunit/phpunit/src/Framework/TestCase.php(894): PHPUnit\Framework\TestResult->run(Object(RxHooks\Test\TestCase\Controller\Sl20WebhooksControllerTest))
#23 /home/alysson/rx/vendor/phpunit/phpunit/src/Framework/TestSuite.php(755): PHPUnit\Framework\TestCase->run(Object(PHPUnit\Framework\TestResult))
#24 /home/alysson/rx/vendor/phpunit/phpunit/src/TextUI/TestRunner.php(546): PHPUnit\Framework\TestSuite->run(Object(PHPUnit\Framework\TestResult))
#25 /home/alysson/rx/vendor/phpunit/phpunit/src/TextUI/Command.php(195): PHPUnit\TextUI\TestRunner->doRun(Object(PHPUnit\Framework\TestSuite), Array, true)
#26 /home/alysson/rx/vendor/phpunit/phpunit/src/TextUI/Command.php(148): PHPUnit\TextUI\Command->run(Array, true)
#27 /home/alysson/rx/vendor/phpunit/phpunit/phpunit(53): PHPUnit\TextUI\Command::main()
#28 {main}
alysson-azevedo commented 6 years ago

I was able to workaround by changing my fixture from:

public $import = ['model' => 'Users'];

to:

public $import = ['table' => 'users'];