예제 #1
0
    def test_import_snippet_without_cmr(self):
        """Imported snippets without Client Match Rules, should get disabled."""

        import_data = """
[
  {
    "pk": 4045,
    "model": "homesnippets.snippet",
    "fields": {
      "body": "0",
      "disabled": false,
      "name": "1",
      "created": "2013-06-10 17:42:45",
      "country": "2",
      "modified": "2013-06-11 17:42:45",
      "priority": 2,
      "pub_start": "2013-06-12 18:40:06",
      "pub_end": "2013-06-30 18:40:11",
      "preview": false,
      "client_match_rules": [
      ]
    }
  }
]"""

        open_name = 'snippets.base.cron.open'
        with patch(open_name, mock_open(read_data=import_data), create=True):
            import_v1_data('foo')

        snippet = Snippet.objects.get(pk=4045)
        eq_(snippet.disabled, True)
예제 #2
0
    def test_import_v1(self):
        import_data = """
[
  {
    "pk": 515,
    "model": "homesnippets.clientmatchrule",
    "fields": {
      "description": "0",
      "appbuildid": "1",
      "distribution_version": "2",
      "locale": "3",
      "created": "2011-07-28 01:20:41",
      "startpage_version": "4",
      "modified": "2012-07-25 16:21:01",
      "os_version": "5",
      "version": "6",
      "exclude": false,
      "distribution": "7",
      "build_target": "8",
      "channel": "9",
      "name": "10"
    }
  },
  {
    "pk": 516,
    "model": "homesnippets.clientmatchrule",
    "fields": {
      "description": "20",
      "appbuildid": "21",
      "distribution_version": "22",
      "locale": "23",
      "created": "2011-07-28 01:20:41",
      "startpage_version": "24",
      "modified": "2012-07-25 16:21:01",
      "os_version": "25",
      "version": "26",
      "exclude": false,
      "distribution": "27",
      "build_target": "28",
      "channel": "29",
      "name": "30"
    }
  },
  {
    "pk": 4045,
    "model": "homesnippets.snippet",
    "fields": {
      "body": "0",
      "disabled": false,
      "name": "1",
      "created": "2013-06-10 17:42:45",
      "country": "2",
      "modified": "2013-06-11 17:42:45",
      "priority": 2,
      "pub_start": "2013-06-12 18:40:06",
      "pub_end": "2013-06-30 18:40:11",
      "preview": false,
      "client_match_rules": [
        515
      ]
    }
  }
]"""
        open_name = 'snippets.base.cron.open'
        with patch(open_name, mock_open(read_data=import_data), create=True):
            import_v1_data('foo')

        ok_(SnippetTemplate.objects.get(name='Basic Import Template'))

        eq_(ClientMatchRule.objects.count(), 2)
        cmr = ClientMatchRule.objects.get(description='0')
        eq_(cmr.description, '0')
        eq_(cmr.appbuildid, '1')
        eq_(cmr.distribution_version, '2')
        eq_(cmr.locale, '3')
        eq_(cmr.created, datetime(2011, 7, 28, 1, 20, 41))
        eq_(cmr.startpage_version, '4')
        eq_(cmr.modified, datetime(2012, 7, 25, 16, 21, 01))
        eq_(cmr.os_version, '5')
        eq_(cmr.version, '6')
        eq_(cmr.is_exclusion, False)
        eq_(cmr.distribution, '7')
        eq_(cmr.build_target, '8')
        eq_(cmr.channel, '9')
        eq_(cmr.name, '10')

        snippet = Snippet.objects.get(name='1')
        eq_(snippet.data, '{"data": "0"}')
        eq_(snippet.disabled, False)
        eq_(snippet.name, '1')
        eq_(snippet.created, datetime(2013, 06, 10, 17, 42, 45))
        eq_(snippet.modified, datetime(2013, 06, 11, 17, 42, 45))
        eq_(snippet.priority, 2)
        eq_(snippet.publish_start, datetime(2013, 06, 12, 18, 40, 06))
        eq_(snippet.publish_end, datetime(2013, 06, 30, 18, 40, 11))
        eq_(snippet.client_match_rules.count(), 1)
        eq_(snippet.client_match_rules.all()[0], cmr)
        eq_(snippet.on_release, True)
        eq_(snippet.on_beta, True)
        eq_(snippet.on_aurora, True)
        eq_(snippet.on_nightly, True)
        eq_(snippet.on_startpage_1, True)
        eq_(snippet.on_startpage_2, True)
        eq_(snippet.on_startpage_3, True)
        eq_(snippet.on_startpage_4, True)
        eq_(snippet.id, 4045)
        eq_(snippet.country, '2')

        eq_(SnippetLocale.objects.filter(snippet=snippet).count(),
            len(ENGLISH_LANGUAGE_CHOICES))
        for locale_code, locale_name in ENGLISH_LANGUAGE_CHOICES:
            ok_(SnippetLocale.objects
                .filter(snippet=snippet, locale=locale_code).exists())