On Mon, Aug 3, 2015 at 3:56 PM, Michael Wood <[email protected]> wrote:
> On 31/07/15 14:06, sujith h wrote: > >> >> >> On Wed, Jul 29, 2015 at 8:09 PM, sujith h <[email protected] <mailto: >> [email protected]>> wrote: >> >> >> >> On Wed, Jul 29, 2015 at 12:21 AM, Michael Wood >> <[email protected] <mailto:[email protected]>> wrote: >> >> On 27/07/15 16:23, sujith h wrote: >> >> >> >> On Mon, Jul 27, 2015 at 6:55 PM, Michael Wood >> <[email protected] >> <mailto:[email protected]> >> <mailto:[email protected] >> >> <mailto:[email protected]>>> wrote: >> >> On 27/07/15 11:31, sujith h wrote: >> >> >> >> On Mon, Jul 27, 2015 at 3:39 PM, Barros Pena, Belen >> <[email protected] >> <mailto:[email protected]> >> <mailto:[email protected] >> <mailto:[email protected]>> >> <mailto:[email protected] >> <mailto:[email protected]> >> <mailto:[email protected] >> <mailto:[email protected]>>>> wrote: >> >> >> >> On 27/07/2015 07:54, "sujith h" >> <[email protected] <mailto:[email protected]> >> <mailto:[email protected] >> <mailto:[email protected]>> >> <mailto:[email protected] >> <mailto:[email protected]> <mailto:[email protected] >> <mailto:[email protected]>>>> >> wrote: >> >> > >> > >> >On Fri, Jul 24, 2015 at 6:36 PM, Barros Pena, >> Belen >> ><[email protected] >> <mailto:[email protected]> >> <mailto:[email protected] >> <mailto:[email protected]>> >> <mailto:[email protected] >> <mailto:[email protected]> >> <mailto:[email protected] >> <mailto:[email protected]>>>> wrote: >> > >> > >> > >> >On 24/07/2015 13:57, "sujith h" >> <[email protected] <mailto:[email protected]> >> <mailto:[email protected] >> <mailto:[email protected]>> >> <mailto:[email protected] >> <mailto:[email protected]> <mailto:[email protected] >> <mailto:[email protected]>>>> >> >> wrote: >> > >> > >> >* Which version of Yocto Project you are >> using (fido or >> master)? >> > >> >I am using fido branch. >> > >> > >> >* Which release you have selected for your >> project? >> > >> > >> >In the release I have selected "Local Yocto >> Project" >> > >> > >> >* If you click the "view all compatible >> layers" link and >> in that >> page you >> >search for meta-oe, do you get any results? >> > >> >I can see only "meta-yocto-bsp", "meta-yocto" and >> "openembedded-core". >> >Attached screenshot of the same. >> > >> > >> >Also attaching screenshot of page where I try >> to import >> meta-oe >> from my >> >locally cloned location. >> > >> > >> >Below is the file structure I have: >> > >> >sujith@kdekid:~/MEL/homework$ pwd >> >/home/sujith/MEL/homework >> >sujith@kdekid:~/MEL/homework$ ls -l >> >total 5180 >> >drwxrwxr-x 19 sujith sujith 4096 Jun 12 18:40 >> meta-oe-local >> >drwxrwxr-x 19 sujith sujith 4096 Jul 24 18:04 >> meta-openembedded-local >> >drwxrwxr-x 8 sujith sujith 4096 Jul 24 18:02 >> meta-qt5-local >> >drwxrwxr-x 11 sujith sujith 4096 Jul 27 >> 12:07 poky >> >drwxrwxr-x 2 sujith sujith 4096 Jul 27 12:08 >> toaster_build_artifacts >> >-rw-r--r-- 1 sujith sujith 5277696 Jul 27 12:19 >> toaster.sqlite >> >drwxrwxr-x 6 sujith sujith 4096 Jul 24 >> 16:25 venv >> >sujith@kdekid:~/MEL/homework$ >> > >> >> Right, I've managed to reproduce this. Looking >> at the browser >> console, it >> might be a problem with the javascript doing >> the layer name >> validation. If >> you change the layer name to something >> completely random >> that does not >> exist in the Toaster database (something like >> meta-xyz), >> can you >> import >> the layer? >> >> >> Am bit new to the web world. So I gave a try with >> firebug to >> debug which script ( Javascript or any ) call happens >> when I click "Import and add to project" button. >> Even after >> changing meta-oe repo to meta-xyz as per suggestion, >> the result remains same. But this is the output I >> see in the >> firebug console: >> |{"current_id": 5, "current_url": >> "git://git.openembedded.org/meta-openembedded >> <http://git.openembedded.org/meta-openembedded> >> <http://git.openembedded.org/meta-openembedded> >> <http://git.openembedded.org/meta-openembedded>", >> "error": >> "hint-layer-exists-with-different-url"||}| >> hint-layer-exists-with-different-url >> >> Also attaching the screenshot of the same ( to get >> more clarity ). >> >> >> Thanks for this, I noticed this wasn't working >> properly last week, >> and rolled a couple of patches to fix these regressions. >> >> >> >> http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=michaelw/toaster/wip-nav-project-changes&id=0181c56dd608427c0a7bd986df75bf7a1189e064 >> >> and >> >> >> >> http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=michaelw/toaster/wip-nav-project-changes&id=aa5b023f03f5465ea22318a1f21199ce434eb700 >> >> I have a few other things to fix on this branch as I >> have been >> fixing a number of things to allow me to test the new >> project >> page, I'm intending to roll a separate branch for >> review on it. >> >> You've highlighted that we need a unit test which does >> a layer >> import using the back end API calls, which although it >> wouldn't >> have caught this error would be really good to have, >> if you're >> interested in helping with that? >> >> >> It would be my pleasure to help :) I might need some >> assistance as I am learning Django. May be some hint like >> where to start with or so. >> >> >> This is the best place to start >> https://docs.djangoproject.com/en/1.6/topics/testing/overview/ >> >> In ./bitbake >> <https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake >> >/lib >> <https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake/lib >> >/toaster >> < >> https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake/lib/toaster >> >/toastergui >> < >> https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake/lib/toaster/toastergui >> >/tests.py >> < >> https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake/lib/toaster/toastergui/tests.py >> > >> >> We can add something like >> >> class ImportLayerTestCase(|ProvisionedLayersProjectTestCase|): >> .... >> ... >> def test_import_layer(self): >> client.post(reverse('xhr_importlayer',..... >> >> ... >> >> We can then use the JSON response from the client to help >> validate the data coming back as well as checking the import >> layer actually entered the database. >> >> There are a few examples in the yocto error-report-web project >> too that might be useful to look at e.g. >> >> http://git.yoctoproject.org/cgit/cgit.cgi/error-report-web/tree/Post/test.py#n153 >> < >> http://git.yoctoproject.org/cgit/cgit.cgi/error-report-web/tree/Post/test.py#n153 >> > >> >> You can run the test by doing running ./manage.py test toastergui >> >> >> Thank you Michael for such a detailed step to follow. I have >> started reading the docs from django mentioned in the link and the >> reference mentioned in the mail. >> >> >> I wrote a small piece of code in bitbake/lib/toaster/toastergui/tests.py. >> Below is the code ( since I have written a small code, I thought to share >> here. Kindly let me know if there is any problem sharing small code in the >> mailing list ): >> ---------- >> from django.test import TestCase >> from django.test.client import Client >> from django.core.urlresolvers import reverse >> import json >> >> >> class ImportLayerTestCase(TestCase): >> def test_import_layers(self): >> client = Client() >> json_string = json.dumps({'name':'meta-oe', >> 'vcs-url':'/home/sujith/MEL/homework/meta-xyz', >> 'git_ref':'c12b9596afd236116b25ce26dbe0d793de9dc7ce', >> 'dir_path':'/home/sujith/MEL/homework/meta-xyz/meta-oe', >> 'project_id':'1', 'layer_deps':'1'}) >> response = client.post(reverse('xhr_importlayer'), >> {'data':json_string}, >> 'json', >> HTTP_X_REQUESTED_WITH='XMLHttpRequest') >> ------------- >> >> Let me know if I am in the right track. After following your mail and bit >> of google, helped me in writing this code. My query here is when I try to >> print response, it prints an html as follows: >> > --8<-- > > Yep that's a good start, we currently don't actually pass IN a JSON > document for the import layers call, it's just a bunch of parameters in the > POST request. > So instead of > > json_string = json.dumps({'name':'meta-oe', >> > > you can do: > > data = {'name':'meta-oe', > > > and then: > > response = client.post(reverse('xhr_importlayer', args(1,)), > data, > > etc > I modified my code segment to: ------------ data = {'name':'meta-oe', 'vcs-url':'/home/sujith/MEL/homework/meta-xyz', 'git_ref':'c12b9596afd236116b25ce26dbe0d793de9dc7ce', 'dir_path':'/home/sujith/MEL/homework/meta-xyz/meta-oe', 'project_id':'1', 'layer_deps':'1'} response = client.post(reverse('xhr_importlayer'), data, 'json', HTTP_X_REQUESTED_WITH='XMLHttpRequest') ------------ After making this change when I try to run ./manage.py test toastergui, I get an error saying: -------------- (venv)sujith@kdekidd0:~/MEL/toaster_work/poky/bitbake/lib/toaster$ ./manage.py test toastergui Creating test database for alias 'default'... Content-Type: application/json { "error": "Missing parameters; requires vcs_url, name, git_ref and project_id" } . ---------------------------------------------------------------------- Ran 1 test in 0.184s OK Destroying test database for alias 'default'... (venv)sujith@kdekidd0:~/MEL/toaster_work/poky/bitbake/lib/toaster$ -------------- Bit confusing for me. From the views.py I can see that there is a conditional check that is made for vcs_url, git_ref, project_id and name. Which we are already providing in the dictionary, data. > > Looking at that response I'm wondering if you are you using current master > branch? It seems to be showing the old response to that request where you > haven't enabled build mode (which is enabled by default in current master). > The response should be a JSON response where you have the returned state in > it e.g. { "error" : "hint-layer-exists" } We can then parse this and test > the various conditions are correct based on the data we sent it. > Just now moved to master branch. I was in the fido branch when I did my initial testing. > > Thanks, > > Michael > > > > > > > -- സുജിത് ഹരിദാസന് Bangalore <Project>Contributor to KDE project http://fci.wikia.com/wiki/Anti-DRM-Campaign <Blog> http://sujithh.info
-- _______________________________________________ toaster mailing list [email protected] https://lists.yoctoproject.org/listinfo/toaster
