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

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.

Thanks,

Michael






--
_______________________________________________
toaster mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/toaster

Reply via email to