Never mind, got an answer here: http://groups.google.com/group/symfony-users/browse_thread/thread/4c5a298e55653c9b
Thanks again for your help. On May 4, 9:38 am, Donald <chekot...@gmail.com> wrote: > Screwed up that copy & paste! > > The correct error is: There is no extension able to load the > configuration for "test.client.class" > > On May 4, 9:30 am, Donald <chekot...@gmail.com> wrote: > > > > > > > > > I tried setting up a custom Client as you explained, but I'm getting > > an error complaining that "test.client.class: com\frazerbilt\quartz > > \Component\Test\Client" > > > I put the new config line in my config_test.yml. > > > Any ideas what I'm doing wrong? > > > On May 4, 7:35 am, Donald <chekot...@gmail.com> wrote: > > > > None of my tests use multiple requests, so I haven't run into that > > > yet. But I'm sure I will at some point. > > > > Thanks for the workaround, it looks like a nice clean fix. > > > > On May 3, 6:03 pm, danielholmes <dan...@creatio.com.au> wrote: > > > > > With the in memory db, I still have the problem of multi request tests > > > > where the db wont be present across both. Have you run in to this > > > > problem? e.g.: > > > > > $crawler = $this->client->request('GET', '/contact'); // Request > > > > 1, container created > > > > $form = $crawler->filter('#user-form input.button')->form($params); > > > > > $this->client->submit($form); // Request 2, kernel shutdown in > > > > Client->doRequest so db lost > > > > > To solve this you can add this parameter in your config: > > > > > test.client.class: MyProject\Test\Client > > > > > Then within the MyProject\Test\Client I've been using this to keep > > > > that in memory connection: > > > > > protected function doRequest($request) > > > > { > > > > if ($this->hasRequest) > > > > { > > > > $container = $this->kernel->getContainer(); > > > > $conn = $container- > > > > > >get('doctrine.dbal.default_connection'); > > > > > $this->kernel->shutdown(); > > > > $this->kernel->boot(); > > > > > $newContainer = $this->kernel->getContainer(); > > > > $newContainer->set('doctrine.dbal.default_connection', > > > > $conn); > > > > } > > > > else > > > > { > > > > $this->hasRequest = true; > > > > } > > > > > $response = $this->kernel->handle($request); > > > > > return $response; > > > > } > > > > > On May 4, 1:43 am, Donald <chekot...@gmail.com> wrote: > > > > > > Looks like other people are experiencing this problem, and > > > > > unfortunately Fabien doesn't seem to think it's a real issue... > > > > > >https://github.com/symfony/symfony/pull/742#issuecomment-1094468 > > > > > > On May 3, 10:40 am, Donald <chekot...@gmail.com> wrote: > > > > > > > Hi Daniel, > > > > > > > Thanks for the info. Although commenting out that line does resolve > > > > > > the problem, I think there's something going on a little deeper. > > > > > > > My tests actually passed after this commit, so something has changed > > > > > > since then. Maybe something in the way the kernel actually carries > > > > > > out > > > > > > the shutdown / reboot process... > > > > > > > On May 2, 6:28 pm, danielholmes <dan...@creatio.com.au> wrote: > > > > > > > > Hi Donald, > > > > > > > > I'm glad I wasn't the only one having this problem. Thanks for > > > > > > > mentioning the spl_object_hash; I hadn't seen it before. > > > > > > > > Using that, I found they are actually referring to different > > > > > > > containers. I tracked the problem down to this commit: > > > > > > > >https://github.com/symfony/symfony/commit/91602dfef4051c400b12cf8f13f... > > > > > > > > Specifically in the FrameworkBundle\Client.php class: > > > > > > > > protected function doRequest($request) > > > > > > > { > > > > > > > $this->kernel->shutdown(); > > > > > > > > return $this->kernel->handle($request); > > > > > > > } > > > > > > > > If you comment out the $this->kernel->shutdown(); then the initial > > > > > > > test will work correctly (assuming you've warmed your cache in the > > > > > > > test environment - php app/console cache:warmup --env=test). > > > > > > > > Most of my tests now pass with that removed (the others im working > > > > > > > through, look to mostly be url changes though), but I'm not sure > > > > > > > of > > > > > > > the other implications > > > > > > > > On May 3, 7:20 am, Donald <chekot...@gmail.com> wrote: > > > > > > > > > With further testiing, I've verified the following: > > > > > > > > > 1. The Controller see's no tables at all. Printing the results > > > > > > > > of $em->getConnection()->getSchemaManager()->createSchema() in > > > > > > > > > testSomething() outputs the expected schema, whereas running > > > > > > > > the same > > > > > > > > line in the action for /things/1.html outputs an empty schema. > > > > > > > > > 2. The Controller and Test classes *are* using different > > > > > > > > connections. > > > > > > > > Printing the results of spl_object_hash($em->getConnection()) > > > > > > > > in both > > > > > > > > classes results in a different hash. > > > > > > > > > I'll continue to investigate further, but I'd still appreciate > > > > > > > > some > > > > > > > > input if anyone has any helpful pointers. > > > > > > > > > Thanks. > > > > > > > > > On May 2, 3:40 pm, Donald <chekot...@gmail.com> wrote: > > > > > > > > > > I'm in the middle of upgrading my project to use Symfony 2 > > > > > > > > > Beta 1, > > > > > > > > > from it's current version of PR11, and I've run into a > > > > > > > > > problem with > > > > > > > > > the tests that I can't work out. > > > > > > > > > > I use pdo_sqlite for my tests, and create the schema in the > > > > > > > > > setup > > > > > > > > > method of each test. This would work fine in PR11, but in > > > > > > > > > Beta 1, > > > > > > > > > something has changed where the Client doesn't see the > > > > > > > > > database that > > > > > > > > > my Test created. > > > > > > > > > > Here's an example test: > > > > > > > > > > class MyTest extends WebTestCase { > > > > > > > > > > protected function setUp() { > > > > > > > > > $this->client = $this->createClient(); > > > > > > > > > $this->client->followRedirects(false); > > > > > > > > > > $this->container = $this->kernel->getContainer(); > > > > > > > > > > $em = > > > > > > > > > $this->container->get('doctrine.orm.entity_manager'); > > > > > > > > > > $tool = new SchemaTool($em); > > > > > > > > > $metaData = $em->getMetaDataFactory()->getAllMetaData(); > > > > > > > > > $tool->createSchema($metaData); > > > > > > > > > > $thing1 = new Thing(); > > > > > > > > > $thing1->name = 'Bob'; > > > > > > > > > > $em->persist($thing1); > > > > > > > > > $em->flush(); > > > > > > > > > } > > > > > > > > > > public function testSomething() { > > > > > > > > > // just to demonstrate that the database and object > > > > > > > > > *does* exist, > > > > > > > > > this works: > > > > > > > > > $em = > > > > > > > > > $this->container->get('doctrine.orm.entity_manager'); > > > > > > > > > echo get_class($em->find('MyBundle:Thing', 1)); > > > > > > > > > > // This however, fails (assuming that the action at this > > > > > > > > > URL will > > > > > > > > > attempt to load Thing1) > > > > > > > > > $this->client->request('GET', sprintf('/things/1.html')); > > > > > > > > > $response = $this->client->getResponse(); > > > > > > > > > > // Response will be a stack trace stating "General error: > > > > > > > > > 1 no > > > > > > > > > such table: thing" > > > > > > > > > print_r($response); > > > > > > > > > } > > > > > > > > > > } > > > > > > > > > > I've updated all my config files with the new cleaner dbal > > > > > > > > > configuration style, and as demonstrated by the fact that the > > > > > > > > > fixtures > > > > > > > > > and the first couple of lines of this test works, it is > > > > > > > > > configured > > > > > > > > > correctly. > > > > > > > > > > Can anyone point me in the direction of what changed to break > > > > > > > > > this? It > > > > > > > > > seems as if the MyTest and Client instances are not working > > > > > > > > > from the > > > > > > > > > same EntityManager and/or Connection. > > > > > > > > > > Thanks, > > > > > > > > > > Donald -- If you want to report a vulnerability issue on symfony, please send it to security at symfony-project.com You received this message because you are subscribed to the Google Groups "symfony users" group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to symfony-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en