Пример #1
0
    def setUp(self):
        super(UpdatedFieldsTest, self).setUp()

        self.point = Point(-8515941.0, 4953519.0)
        self.instance = make_instance(point=self.point)
        self.user = make_commander_user(self.instance)
        self.fellow = make_commander_user(self.instance, 'other-commander')
        self.plot = Plot(geom=self.point, instance=self.instance)
        self.plot.save_with_user(self.user)
        self.plot.refresh_from_db()
        self.initial_updated = self.plot.updated_at
Пример #2
0
 def setUp(self):
     self.instance = make_instance()
     self.user = make_commander_user(self.instance)
     self.plot = Plot(instance=self.instance, geom=Point(-7615441, 5953519))
     self.plot.save_with_user(self.user)
     self.tree = Tree(instance=self.instance, plot=self.plot)
     self.tree.save_with_user(self.user)
Пример #3
0
 def make_tree(self, user=None):
     user = user or make_commander_user(self.instance)
     plot = Plot(geom=self.instance.center, instance=self.instance)
     plot.save_with_user(user)
     tree = Tree(instance=self.instance, plot=plot)
     tree.save_with_user(user)
     return tree
Пример #4
0
 def test_plot_create(self):
     username = make_commander_user(self.instance).username
     self.client.login(username=username, password='******')
     self.assert_200(
         self.prefix + 'plots/', 'POST',
         json.dumps({'plot.geom': {'x': 270, 'y': 45}}),
         content_type="application/json")
Пример #5
0
 def setUp(self):
     self.instance = make_instance()
     self.user = make_commander_user(self.instance)
     self.plot = Plot(instance=self.instance, geom=self.instance.center)
     self.plot.save_with_user(self.user)
     self.tree = Tree(instance=self.instance, plot=self.plot)
     self.tree.save_with_user(self.user)
Пример #6
0
    def setUp(self):
        self.instance = make_instance()
        self.commander = make_commander_user(self.instance, "comm")

        # Note unicode '⅀' is on purpose
        self.user1 = User(username='******', password='******',
                          email='*****@*****.**',
                          organization='org111',
                          first_name='therem', last_name='⅀straven')

        self.user1.save_with_user(self.commander)

        self.user2 = User(username='******', password='******',
                          email='*****@*****.**',
                          first_name='genly', last_name='ai')
        self.user2.save_with_user(self.commander)

        self.user3 = User(username='******', password='******',
                          email='*****@*****.**')
        self.user3.save_with_user(self.commander)

        self.user4 = User(username='******', password='******',
                          email='*****@*****.**')
        self.user4.save_with_user(self.commander)

        self.factory = RequestFactory()
Пример #7
0
    def setUp(self):
        region = ITreeRegion.objects.get(code='NoEastXXX')
        p = region.geometry.point_on_surface

        self.instance = make_instance(is_public=True, point=p)

        self.user = make_commander_user(self.instance)

        self.species = Species(otm_code='CEAT',
                               genus='cedrus',
                               species='atlantica',
                               max_dbh=2000,
                               max_height=100,
                               instance=self.instance)
        self.species.save_with_user(self.user)

        self.plot = Plot(geom=p, instance=self.instance)

        self.plot.save_with_user(self.user)

        self.tree = Tree(plot=self.plot,
                         instance=self.instance,
                         readonly=False,
                         species=self.species,
                         diameter=1630)

        self.tree.save_with_user(self.user)
Пример #8
0
    def setUp(self):
        self.p = Point(-7615441.0, 5953519.0)

        self.instance = make_instance(point=self.p)
        self.user = make_commander_user(self.instance)

        self.plot = Plot(geom=self.instance.center, instance=self.instance)
Пример #9
0
def setupTreemapEnv():
    def local_render_to_response(*args, **kwargs):
        from django.template import loader
        from django.http import HttpResponse

        httpresponse_kwargs = {'mimetype': kwargs.pop('mimetype', None)}
        hr = HttpResponse(
            loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)

        if hasattr(args[1], 'dicts'):
            hr.request_context = args[1].dicts

        return hr

    django.shortcuts.render_to_response = local_render_to_response

    instance = make_instance(is_public=True)
    create_stewardship_udfs(instance)

    make_user_with_default_role(instance, 'jim')
    commander = make_commander_user(instance, 'commander')
    make_apprentice_user(instance, 'apprentice')

    n1geom = MultiPolygon(Polygon(
        ((0, 0), (100, 0), (100, 100), (0, 100), (0, 0))))

    n2geom = MultiPolygon(
        Polygon(((0, 101), (101, 101), (101, 200), (0, 200), (0, 101))))

    n1 = Boundary(name="n1", category='blah', sort_order=4, geom=n1geom)
    n2 = Boundary(name="n2", category='blah', sort_order=4, geom=n2geom)

    n1.save()
    n2.save()

    s1 = Species(otm_code="s1", genus="testus1", species="specieius1",
                 cultivar='', instance=instance)
    s2 = Species(otm_code="s2", genus="testus2", species="specieius2",
                 cultivar='', instance=instance)
    s3 = Species(otm_code="s3", genus="testus2", species="specieius3",
                 cultivar='', instance=instance)

    s1.is_native = True
    s1.fall_conspicuous = True
    s1.flower_conspicuous = True
    s1.palatable_human = True

    s2.is_native = True
    s2.fall_conspicuous = False
    s2.flower_conspicuous = True
    s2.palatable_human = False
    s2.has_wildlife_value = True

    s3.has_wildlife_value = True

    s1.save_with_user(commander)
    s2.save_with_user(commander)
    s3.save_with_user(commander)

    return instance
Пример #10
0
Файл: urls.py Проект: heath/OTM2
 def test_user_audits(self):
     self.instance = make_instance()
     username = make_commander_user(self.instance).username
     self.assert_template("/users/%s/edits/" % username, "treemap/recent_user_edits.html")
     self.assert_template(
         "/users/%s/edits/?instance_id=%s" % (username, self.instance.id), "treemap/recent_user_edits.html"
     )
Пример #11
0
 def setUp(self):
     super(CommentTestMixin, self).setUp()
     self.instance = make_instance()
     self.user = make_commander_user(self.instance)
     self.admin = make_admin_user(self.instance)
     self.plot = Plot(geom=self.instance.center, instance=self.instance)
     self.plot.save_with_user(self.user)
Пример #12
0
    def test_plot_is_writable_if_can_create_tree(self):
        self.commander_user = make_commander_user(self.instance)
        self.commander_role = \
            self.commander_user.get_instance_user(self.instance).role
        self.tree_only_user = make_user(self.instance)
        self.tree_only_role = self.instance.default_role

        content_type = ContentType.objects.get_for_model(Tree)
        add_tree_perm = Permission.objects.get(content_type=content_type,
                                               codename='add_tree')
        self.tree_only_role.instance_permissions.add(add_tree_perm)
        self.tree_only_role.save()

        self.p = Point(-8515941.0, 4953519.0)
        self.plot = Plot(instance=self.instance, width=12, geom=self.p)
        self.plot.save_with_user(self.commander_user)

        plot2 = Plot(instance=self.instance, width=12, geom=self.p)
        self.assertRaises(AuthorizeException,
                          plot2.save_with_user,
                          self.tree_only_user)

        self.tree = Tree(instance=self.instance, plot=self.plot)
        self.tree.save_with_user(self.tree_only_user)

        self.assertTrue(self.tree.user_can_create(self.tree_only_user))

        # The plot should be writable if the user can create a tree
        self.assertTrue(perms.map_feature_is_writable(
            self.tree_only_role,
            self.plot))
Пример #13
0
 def setUp(self):
     self.p1 = Point(0, 0)
     self.instance = make_instance(point=self.p1)
     self.commander = make_commander_user(self.instance)
     self.parse_dict_value = partial(
         search._parse_dict_value_for_mapping,
         search.PREDICATE_TYPES)
Пример #14
0
    def setUp(self):
        self.p = Point(-8515941.0, 4953519.0)
        self.instances = [
            make_instance(point=self.p),
            make_instance(point=self.p)
        ]
        self.commander_users = [
            make_commander_user(i, username='******' % i.pk)
            for i in self.instances]
        for i in range(len(self.instances)):
            set_write_permissions(self.instances[i], self.commander_users[i],
                                  'Plot', ['udf:Test choice'])
        self.choice_udfds = [
            UserDefinedFieldDefinition.objects.create(
                instance=i,
                model_type='Plot',
                datatype=json.dumps({'type': 'choice',
                                     'choices': ['a', 'b', 'c']}),
                iscollection=False,
                name='Test choice') for i in self.instances]

        self.plots = [
            Plot(geom=self.p, instance=i) for i in self.instances]

        for i in range(len(self.plots)):
            self.plots[i].save_with_user(self.commander_users[i])

        psycopg2.extras.register_hstore(connection.cursor(), globally=True)
Пример #15
0
 def setUp(self):
     self.point = Point(-8515941.0, 4953519.0)
     self.instance = make_instance(point=self.point)
     self.user = make_commander_user(self.instance)
     self.plot = Plot(geom=self.point, instance=self.instance)
     self.plot.save_with_user(self.user)
     self.plot = Plot.objects.get(pk=self.plot.pk)
     self.initial_updated = self.plot.updated_at
Пример #16
0
    def setUp(self):
        super(AsyncCSVTestCase, self).setUp()
        self.instance = make_instance()
        self.user = make_commander_user(self.instance)

        self.unprivileged_user = User.objects.create_user(username='******',
                                                          email='*****@*****.**',
                                                          password='******')
Пример #17
0
    def setUp(self):
        self.instance = make_instance()
        self.commander = make_commander_user(self.instance)

        self.new_role = Role(name='Ambassador', instance=self.instance,
                             rep_thresh=0)
        self.new_role.save()

        self.factory = RequestFactory()
Пример #18
0
Файл: urls.py Проект: heath/OTM2
 def test_plot_create(self):
     username = make_commander_user(self.instance).username
     self.client.login(username=username, password="******")
     self.assert_200(
         self.prefix + "plots/",
         "POST",
         json.dumps({"plot.geom": {"x": 270, "y": 45}}),
         content_type="application/json",
     )
Пример #19
0
 def setUp(self):
     super(UpdatedAtTestCase, self).setUp()
     self.image = self.load_resource('tree1.gif')
     self.test_start = timezone.now()
     self.point = Point(-8515941.0, 4953519.0)
     self.instance = make_instance(point=self.point)
     self.user = make_commander_user(self.instance)
     self.plot = Plot(geom=self.point, instance=self.instance)
     self.plot.save_with_user(self.user)
Пример #20
0
 def setUp(self):
     self.p1 = Point(-7615441.0, 5953519.0)
     self.instance = make_instance(point=self.p1)
     self.commander_user = make_commander_user(self.instance)
     self.direct_user = make_officer_user(self.instance)
     self.pending_user = make_apprentice_user(self.instance)
     self.observer_user = make_observer_user(self.instance)
     self.outlaw_user = make_user_with_default_role(self.instance, 'outlaw')
     self.tweaker_user = make_tweaker_user(self.instance)
     self.conjurer_user = make_conjurer_user(self.instance)
Пример #21
0
    def setUp(self):
        self.p1 = Point(-7615441.0, 5953519.0)
        self.instance = make_instance(point=self.p1)
        self.commander_user = make_commander_user(self.instance)
        self.direct_user = make_officer_user(self.instance)
        self.pending_user = make_apprentice_user(self.instance)
        self.observer_user = make_observer_user(self.instance)

        self.plot = Plot(geom=self.p1, instance=self.instance, length=5.0)
        self.plot.save_with_user(self.commander_user)
Пример #22
0
    def test_delete_plot_photo(self):
        commander = make_commander_user(self.instance)
        self.client.login(username=commander.username, password='******')
        tree = self.make_tree(commander)
        image = self.load_resource('tree1.gif')
        tp = tree.add_photo(image, commander)
        tp.save_with_user(commander)

        url = self.prefix + 'features/%s/photo/%s' % (tree.plot.id, tp.id)
        self.assert_200(url, method='DELETE')
Пример #23
0
    def setUp(self):
        # Example url for
        # CEAT, 1630 dbh, NoEastXXX
        # eco.json?otmcode=CEAT&diameter=1630&region=NoEastXXX
        def mockbenefits(*args, **kwargs):
            benefits = {
                "Benefits": {
                    "aq_nox_avoided": 0.6792,
                    "aq_nox_dep": 0.371,
                    "aq_ozone_dep": 0.775,
                    "aq_pm10_avoided": 0.0436,
                    "aq_pm10_dep": 0.491,
                    "aq_sox_avoided": 0.372,
                    "aq_sox_dep": 0.21,
                    "aq_voc_avoided": 0.0254,
                    "bvoc": -0.077,
                    "co2_avoided": 255.5,
                    "co2_sequestered": 0,
                    "co2_storage": 6575,
                    "electricity": 187,
                    "hydro_interception": 12.06,
                    "natural_gas": 5834.1
                }
            }
            return (benefits, None)

        region = ITreeRegion.objects.get(code='NoEastXXX')
        p = region.geometry.point_on_surface

        self.instance = make_instance(is_public=True, point=p)
        self.user = make_commander_user(self.instance)

        self.species = Species(otm_code='CEAT',
                               genus='cedrus',
                               species='atlantica',
                               max_dbh=2000,
                               max_height=100,
                               instance=self.instance)

        self.species.save_with_user(self.user)

        self.plot = Plot(geom=p, instance=self.instance)

        self.plot.save_with_user(self.user)

        self.tree = Tree(plot=self.plot,
                         instance=self.instance,
                         readonly=False,
                         species=self.species,
                         diameter=1630)

        self.tree.save_with_user(self.user)

        self.origBenefitFn = ecobackend.json_benefits_call
        ecobackend.json_benefits_call = mockbenefits
Пример #24
0
    def setUp(self):
        self.p = Point(-8515941.0, 4953519.0)
        self.instance = make_instance(point=self.p)

        self.udf = make_collection_udf(self.instance, "Stewardship")

        self.commander_user = make_commander_user(self.instance)
        set_write_permissions(self.instance, self.commander_user, "Plot", ["udf:Stewardship"])

        self.plot = Plot(geom=self.p, instance=self.instance)
        self.plot.save_with_user(self.commander_user)
Пример #25
0
    def setUp(self):
        super(UpdatedByTest, self).setUp()
        self.other = make_commander_user(instance=self.instance,
                                         username='******')
        self.default_user = make_user_with_default_role(
            instance=self.instance, username='******')

        self.other.save()
        self.default_user.save()
        self.other.refresh_from_db()
        self.default_user.refresh_from_db()
Пример #26
0
 def setUp(self):
     self.instance = make_instance(edge_length=1000)
     self.user = make_commander_user(self.instance)
     self.make_plots([
         (0, 100), (0, 101), (0, 200), (0, 201)
     ])
     recompute_hide_at_zoom(self.instance)
     # Two plots have hide_at_zoom == 14
     # One plot has hide_at_zoom == 10
     # One plot has hide_at_zoom == None
     self.assert_counts({14: 2, 10: 1})
Пример #27
0
    def setUp(self):
        point = Point(-8515941.0, 4953519.0)
        instance = make_instance(point=point)
        user = make_commander_user(instance)
        plot = Plot(geom=point, instance=instance)
        plot.save_with_user(user)

        self.user = user
        self.instance = instance
        self.plot_obj = Plot.objects.get(instance=instance)
        self.map_feature_obj = MapFeature.objects.get(instance=instance)
Пример #28
0
    def setUp(self):
        clear_caches()
        self.instance = make_instance()
        self.user = make_commander_user(self.instance)
        self.role = self.user.get_role(self.instance)

        self.simple_user = make_user()
        default_role = self.instance.default_role
        FieldPermission(model_name='Plot', field_name='owner_orig_id',
                        role=default_role, instance=self.instance,
                        permission_level=READ).save()
Пример #29
0
    def setUp(self):
        psycopg2.extras.register_hstore(connection.cursor(), globally=True)

        self.p1 = Point(-7615441.0, 5953519.0)
        self.instance = make_instance(point=self.p1)
        self.commander_user = make_commander_user(self.instance)
        self.pending_user = make_apprentice_user(self.instance)

        # we need there to be no audits so that we can
        # iterate over all audits without conflict
        Audit.objects.all().delete()
Пример #30
0
    def setUp(self):
        self.p1 = Point(-8515222.0, 4953200.0)

        self.instance = make_instance(point=self.p1)
        self.user = make_commander_user(self.instance)

        self.plot = Plot(geom=self.p1, instance=self.instance)
        self.plot.save_with_user(self.user)

        self.tree = Tree(
            plot=self.plot, instance=self.instance, readonly=False)
        self.tree.save_with_user(self.user)
Пример #31
0
    def setUp(self):
        User._system_user.save_base()

        self.instance = make_instance()
        self.user = make_commander_user(self.instance)

        set_write_permissions(self.instance, self.user,
                              'Plot', ['udf:Test choice'])

        self.udf = UserDefinedFieldDefinition.objects.create(
            instance=self.instance,
            model_type='Plot',
            datatype=json.dumps({'type': 'choice',
                                 'choices': ['a', 'b', 'c']}),
            iscollection=False,
            name='Test choice')
Пример #32
0
    def setUp(self):
        self.p1 = Point(-7615441.0, 5953519.0)
        self.instance = make_instance(point=self.p1)

        self.commander = make_commander_user(self.instance)
        self.privileged_user = make_officer_user(self.instance)
        self.unprivileged_user = make_apprentice_user(self.instance)

        self.plot = Plot(geom=self.p1, instance=self.instance)

        self.plot.save_with_user(self.commander)

        rm = ReputationMetric(instance=self.instance, model_name='Tree',
                              action=Audit.Type.Insert, direct_write_score=2,
                              approval_score=20, denial_score=5)
        rm.save()
Пример #33
0
    def setUp(self):
        self.p = Point(-8515941.0, 4953519.0)
        self.instance = make_instance(point=self.p)
        self.commander_user = make_commander_user(self.instance)
        set_write_permissions(self.instance, self.commander_user, 'Plot',
                              ['udf:Test choice'])

        UserDefinedFieldDefinition.objects.create(instance=self.instance,
                                                  model_type='Plot',
                                                  datatype=json.dumps({
                                                      'type':
                                                      'choice',
                                                      'choices':
                                                      ['a', 'b', 'c']
                                                  }),
                                                  iscollection=False,
                                                  name='Test choice')

        UserDefinedFieldDefinition.objects.create(instance=self.instance,
                                                  model_type='Plot',
                                                  datatype=json.dumps(
                                                      {'type': 'string'}),
                                                  iscollection=False,
                                                  name='Test unauth')

        UserDefinedFieldDefinition.objects.create(instance=self.instance,
                                                  model_type='Plot',
                                                  datatype=json.dumps([{
                                                      'type':
                                                      'choice',
                                                      'name':
                                                      'a choice',
                                                      'choices':
                                                      ['a', 'b', 'c']
                                                  }, {
                                                      'type':
                                                      'string',
                                                      'name':
                                                      'a string'
                                                  }]),
                                                  iscollection=True,
                                                  name='Test collection')

        self.plot = Plot(geom=self.p, instance=self.instance)
        self.plot.save_with_user(self.commander_user)

        psycopg2.extras.register_hstore(connection.cursor(), globally=True)
Пример #34
0
    def setUp(self):
        self.instance = make_instance()
        self.commander = make_commander_user(self.instance, "comm")

        # Note unicode '⅀' is on purpose
        self.user1 = User(username='******',
                          password='******',
                          email='*****@*****.**',
                          organization='org111',
                          first_name='therem',
                          last_name='⅀straven')

        self.user1.save_with_user(self.commander)

        self.user2 = User(username='******',
                          password='******',
                          email='*****@*****.**',
                          first_name='genly',
                          last_name='ai',
                          allow_email_contact=True)
        self.user2.save_with_user(self.commander)

        self.user3 = User(username='******',
                          password='******',
                          email='*****@*****.**')
        self.user3.save_with_user(self.commander)

        role = make_commander_role(self.instance)
        iuser1 = InstanceUser(instance=self.instance,
                              user=self.user1,
                              role=role)
        iuser1.save_with_user(self.user1)
        iuser2 = InstanceUser(instance=self.instance,
                              user=self.user2,
                              role=role)
        iuser2.save_with_user(self.user2)

        pt = Point(0, 0)

        self.plot = Plot(geom=pt,
                         readonly=False,
                         instance=self.instance,
                         width=4)
        self.plot.save_with_user(self.user1)

        self.tree = Tree(instance=self.instance, plot=self.plot, diameter=3)
        self.tree.save_with_user(self.user2)
Пример #35
0
    def test_tree_photo_is_deletable(self):
        commander = make_commander_user(self.instance)
        plot = Plot(instance=self.instance, geom=self.p)
        plot.save_with_user(commander)
        tree = Tree(plot=plot, instance=self.instance)
        tree.save_with_user(commander)
        image = self.load_resource('tree1.gif')

        photo = tree.add_photo(image, commander)

        self._add_builtin_permission(self.role_yes, TreePhoto,
                                     'delete_treephoto')
        user_yes = make_user(instance=self.instance,
                             make_role=lambda inst: self.role_yes)
        self.assertTrue(
            perms.is_deletable(user_yes.get_instance_user(self.instance),
                               photo))
Пример #36
0
    def _setup_tree_and_collection_udf(self):
        instance = self.instance = make_instance()
        commander = self.commander = make_commander_user(instance)

        self.plotstew, self.treestew = \
            _setup_collection_udfs(instance, commander)

        d1 = {'action': 'prune', 'date': "2014-05-3 00:00:00"}
        d2 = {'action': 'water', 'date': "2014-04-29 00:00:00"}

        self.plot = Plot(instance=instance, geom=instance.center)
        self.plot.udfs[self.plotstew.name] = [d1]
        self.plot.save_with_user(commander)

        self.tree = Tree(instance=instance, plot=self.plot)
        self.tree.udfs[self.treestew.name] = [d2]
        self.tree.save_with_user(commander)
Пример #37
0
    def setUp(self):
        self.p = Point(-8515941.0, 4953519.0)
        self.instance = make_instance(point=self.p)

        def make_and_save_type(dtype):
            UserDefinedFieldDefinition.objects.create(
                instance=self.instance,
                model_type='Plot',
                datatype=json.dumps({'type': dtype}),
                iscollection=False,
                name='Test %s' % dtype)

        allowed_types = 'float', 'int', 'string', 'user', 'date'

        addl_fields = ['udf:Test %s' % ttype for ttype in allowed_types]
        addl_fields.append('udf:Test choice')
        addl_fields.append('udf:Test multichoice')

        self.commander_user = make_commander_user(self.instance)
        set_write_permissions(self.instance, self.commander_user,
                              'Plot', addl_fields)

        for dtype in allowed_types:
            make_and_save_type(dtype)

        self.choice_udfd = UserDefinedFieldDefinition.objects.create(
            instance=self.instance,
            model_type='Plot',
            datatype=json.dumps({'type': 'choice',
                                 'choices': ['a', 'b', 'c']}),
            iscollection=False,
            name='Test choice')

        self.multichoice_udfd = UserDefinedFieldDefinition.objects.create(
            instance=self.instance,
            model_type='Plot',
            datatype=json.dumps({'type': 'multichoice',
                                 'choices': ['a', 'b', 'c']}),
            iscollection=False,
            name='Test multichoice')

        self.plot = Plot(geom=self.p, instance=self.instance)
        self.plot.save_with_user(self.commander_user)

        psycopg2.extras.register_hstore(connection.cursor(), globally=True)
Пример #38
0
    def setUp(self):
        # for some reason, the call to this helper
        # in setup_databases() on the test runner
        # is not executing in this context.
        # this is required to make the test work.
        create_mock_system_user()

        super(TreemapUITestCase, self).setUp()

        instance_name = 'autotest_instance'

        Instance.objects.filter(name=instance_name).delete()

        self.instance = create_instance(name=instance_name,
                                        is_public=False,
                                        url_name='autotest-instance')

        self.user = make_commander_user(instance=self.instance,
                                        username='******')

        self.profile = RegistrationProfile.objects.create_profile(self.user)
Пример #39
0
    def _setup_tree_and_collection_udf(self):
        instance = make_instance()

        self.plotstew = make_collection_udf(instance, model='Plot',
                                            datatype=COLLECTION_UDF_DATATYPE)
        self.treestew = make_collection_udf(instance, model='Tree',
                                            datatype=COLLECTION_UDF_DATATYPE)

        commander = make_commander_user(instance)
        set_write_permissions(instance, commander, 'Plot', ['udf:Stewardship'])
        set_write_permissions(instance, commander, 'Tree', ['udf:Stewardship'])

        d1 = {'action': 'prune', 'date': "2014-05-3 00:00:00"}
        d2 = {'action': 'water', 'date': "2014-04-29 00:00:00"}

        self.plot = Plot(instance=instance, geom=instance.center)
        self.plot.udfs[self.plotstew.name] = [d1]
        self.plot.save_with_user(commander)

        self.tree = Tree(instance=instance, plot=self.plot)
        self.tree.udfs[self.treestew.name] = [d2]
        self.tree.save_with_user(commander)
Пример #40
0
    def setUp(self):
        # Just in case - cleanup other bad test cases
        Instance.objects.all().delete()

        self.instance = make_instance()
        plot_stew, tree_stew = tuple(create_stewardship_udfs(self.instance))
        self.cudf = plot_stew
        self.user = make_commander_user(self.instance)

        self.udf = UserDefinedFieldDefinition.objects.create(
            instance=self.instance,
            model_type='Plot',
            datatype=json.dumps({
                'type': 'choice',
                'choices': ['a', 'b', 'c']
            }),
            iscollection=False,
            name='Test choice')

        self.plot = Plot(instance=self.instance, geom=self.instance.center)

        set_write_permissions(self.instance, self.user, 'Plot',
                              ['udf:Test choice', 'udf:Stewardship'])
Пример #41
0
 def test_user_update(self):
     username = make_commander_user().username
     login(self.client, username)
     self.assert_200('/users/%s/' % username, method='PUT', data='{}')
Пример #42
0
 def test_user_update_photo_forbidden(self):
     username = make_commander_user().username
     self.assert_403('/users/%s/photo/' % username, method='POST', data={})
Пример #43
0
 def test_user_audits_invalid(self):
     self.instance = make_instance()
     username = make_commander_user(self.instance).username
     self.assert_404('/users/fake/edits/')
     self.assert_404('/users/%s/edits/?instance_id=0' % username)
Пример #44
0
 def make_plot(self):
     user = make_commander_user(self.instance)
     plot = Plot(geom=Point(0, 0), instance=self.instance)
     plot.save_with_user(user)
     return plot
Пример #45
0
def setupTreemapEnv():
    def local_render_to_response(*args, **kwargs):
        from django.template import loader
        from django.http import HttpResponse

        httpresponse_kwargs = {'mimetype': kwargs.pop('mimetype', None)}
        hr = HttpResponse(loader.render_to_string(*args, **kwargs),
                          **httpresponse_kwargs)

        if hasattr(args[1], 'dicts'):
            hr.request_context = args[1].dicts

        return hr

    django.shortcuts.render_to_response = local_render_to_response

    instance = make_instance(is_public=True)

    make_user_with_default_role(instance, 'jim')
    commander = make_commander_user(instance, 'commander')
    make_apprentice_user(instance, 'apprentice')

    n1geom = MultiPolygon(
        Polygon(((0, 0), (100, 0), (100, 100), (0, 100), (0, 0))))

    n2geom = MultiPolygon(
        Polygon(((0, 101), (101, 101), (101, 200), (0, 200), (0, 101))))

    n1 = Boundary(name="n1", category='blah', sort_order=4, geom=n1geom)
    n2 = Boundary(name="n2", category='blah', sort_order=4, geom=n2geom)

    n1.save()
    n2.save()

    s1 = Species(otm_code="s1",
                 genus="testus1",
                 species="specieius1",
                 cultivar='',
                 instance=instance)
    s2 = Species(otm_code="s2",
                 genus="testus2",
                 species="specieius2",
                 cultivar='',
                 instance=instance)
    s3 = Species(otm_code="s3",
                 genus="testus2",
                 species="specieius3",
                 cultivar='',
                 instance=instance)

    s1.native_status = True
    s1.fall_conspicuous = True
    s1.flower_conspicuous = True
    s1.palatable_human = True

    s2.native_status = True
    s2.fall_conspicuous = False
    s2.flower_conspicuous = True
    s2.palatable_human = False
    s2.wildlife_value = True

    s3.wildlife_value = True

    s1.save_with_user(commander)
    s2.save_with_user(commander)
    s3.save_with_user(commander)

    return instance
Пример #46
0
 def test_user_update_forbidden(self):
     username = make_commander_user().username
     self.assert_403('/users/%s/' % username, method='PUT', data='{}')
 def test_sets_is_editable_to_true_for_user_with_perms(self):
     user = make_commander_user(self.instance)
     self.assert_plot_length_context_value(user, 'field.is_editable',
                                           'True')
Пример #48
0
    def setUp(self):
        self.p1 = Point(-8515941.0, 4953519.0)

        self.instance = make_instance(point=self.p1)
        self.user = make_commander_user(self.instance)
Пример #49
0
 def test_user_with_weird_characters(self):
     self.instance = make_instance()
     user = make_commander_user(self.instance, username='******')
     self.assert_template('/users/%s/' % user.username, 'treemap/user.html')
Пример #50
0
 def test_works_with_user_with_create_perms(self):
     user = make_commander_user(self.instance)
     self.assertEqual(
         self._render_basic_template_with_vars(user, self.plot), 'true')
Пример #51
0
 def setUp(self):
     self.instance = make_instance()
     self.user = make_commander_user(self.instance)
     self.plot = Plot(geom=Point(0, 0), instance=self.instance)
     self.plot.save_with_user(self.user)
Пример #52
0
 def setUp(self):
     self.instance = make_instance()
     self.commander_user = make_commander_user(self.instance)
Пример #53
0
    def setUp(self):
        self.instance = make_instance()
        self.commander_user = make_commander_user(self.instance)
        set_write_permissions(self.instance, self.commander_user, 'Plot', [
            'udf:Test choice', 'udf:Test string', 'udf:Test int',
            'udf:Test date', 'udf:Test float'
        ])

        self.p = Point(-8515941.0, 4953519.0)

        UserDefinedFieldDefinition.objects.create(instance=self.instance,
                                                  model_type='Plot',
                                                  datatype=json.dumps({
                                                      'type':
                                                      'choice',
                                                      'choices':
                                                      ['a', 'b', 'c']
                                                  }),
                                                  iscollection=False,
                                                  name='Test choice')

        UserDefinedFieldDefinition.objects.create(instance=self.instance,
                                                  model_type='Plot',
                                                  datatype=json.dumps(
                                                      {'type': 'string'}),
                                                  iscollection=False,
                                                  name='Test string')

        UserDefinedFieldDefinition.objects.create(instance=self.instance,
                                                  model_type='Plot',
                                                  datatype=json.dumps(
                                                      {'type': 'date'}),
                                                  iscollection=False,
                                                  name='Test date')

        UserDefinedFieldDefinition.objects.create(instance=self.instance,
                                                  model_type='Plot',
                                                  datatype=json.dumps(
                                                      {'type': 'int'}),
                                                  iscollection=False,
                                                  name='Test int')

        UserDefinedFieldDefinition.objects.create(instance=self.instance,
                                                  model_type='Plot',
                                                  datatype=json.dumps(
                                                      {'type': 'float'}),
                                                  iscollection=False,
                                                  name='Test float')

        self.plot = Plot(geom=self.p, instance=self.instance)
        self.plot.save_with_user(self.commander_user)

        psycopg2.extras.register_hstore(connection.cursor(), globally=True)

        def create_and_save_with_choice(c, n=1):
            plots = []
            for i in xrange(n):
                plot = Plot(geom=self.p, instance=self.instance)
                plot.udfs['Test choice'] = c
                plot.save_with_user(self.commander_user)
                plots.append(plot)

            return {plot.pk for plot in plots}

        self.choice_a = create_and_save_with_choice('a', n=2)
        self.choice_b = create_and_save_with_choice('b', n=3)
        self.choice_c = create_and_save_with_choice('c', n=7)
Пример #54
0
 def test_user_audits(self):
     username = make_commander_user(self.instance).username
     self.assert_redirects(
         self.prefix + 'users/%s/edits/' % username,
         '/users/%s/edits/?instance_id=%s'
         % (username, self.instance.id))
Пример #55
0
 def setUp(self):
     self.p1 = Point(0, 0)
     self.instance = make_instance(point=self.p1)
     self.commander = make_commander_user(self.instance)
Пример #56
0
    def setUp(self):
        self.instance = make_instance()
        self.user = make_commander_user(self.instance)

        self.plot = Plot(geom=Point(0, 0), instance=self.instance)
        self.p = Point(-7615441.0, 5953519.0)
Пример #57
0
 def setUp(self):
     self.instance = make_instance()
     self.user = make_commander_user(self.instance)
     self.benefits = 'some benefits'
     self.filter = Filter('', '', self.instance)
Пример #58
0
    def setUp(self):
        super(MigrationCommandTests, self).setUp()
        self.migration_event = MigrationEvent.objects.create()
        self.migration_rules = MIGRATION_RULES
        self.instance = make_instance()
        self.commander = make_commander_user(self.instance)

        def default_partial(fn, *args):
            return partial(fn, self.migration_rules, self.migration_event,
                           *args)

        self.default_partial = default_partial

        self.treephoto_blob = """
        {"pk": 54,
        "model": "treemap.treephoto",
        "fields": {
        "comment": "",
        "title": "",
        "reported_by": 1,
        "photo": "%s",
        "tree": 1,
        "reported": "2012-06-17 13:44:30"}}
        """

        # an actual userprofile has more fields, but we
        # don't actually import userprofiles, we just
        # strip photos off them.
        self.userprofile_blob = """
        {"pk": 54,
        "model": "profiles.userprofile",
        "fields": {
        "user": %d,
        "site_edits": "",
        "uid": "",
        "updates": "",
        "active": "",
        "volunteer": "",
        "zip_code": "",
        "photo": "%s"}}
        """

        self.tree_blob = """
        {"pk": 95,
        "model": "treemap.tree",
        "fields": {
        "dbh": 0.2900001566,
        "last_updated": "2013-05-10 11:28:54",
        "tree_owner": "Open University",
        "date_planted": null,
        "height": 12.0,
        "orig_species": null,
        "sponsor": null,
        "s_order": null,
        "species": 85,
        "steward_name": null,
        "plot": 95,
        "pests": null,
        "species_other1": null,
        "readonly": true,
        "species_other2": null,
        "condition": null,
        "projects": "",
        "steward_user": null,
        "photo_count": 0,
        "date_removed": null,
        "canopy_height": null,
        "last_updated_by": 1,
        "canopy_condition": null,
        "import_event": null,
        "present": true,
        "url": null}}"""

        self.plot_blob = """
        {"pk": 29895,
        "model": "treemap.plot",
        "fields": {
        "last_updated": "2013-04-11 17:20:36",
        "geocoded_lat": null,
        "geocoded_address": "",
        "owner_orig_id": "84368",
        "neighborhood": [283],
        "address_street": null,
        "owner_additional_properties": null,
        "zipcode": "12345",
        "width": 5.2,
        "readonly": true,
        "type": null,
        "sidewalk_damage": null,
        "last_updated_by": 1,
        "data_owner": 31,
        "present": true,
        "address_zip": null,
        "owner_additional_id": null,
        "address_city": "123 Main Street",
        "neighborhoods": " 283",
        "geometry": "POINT (0.0 0.0)",
        "length": 1.3,
        "powerline_conflict_potential": null,
        "geocoded_accuracy": null,
        "import_event": null,
        "geocoded_lon": null}}
        """

        self.user_blob = """
        {"pk": 17,
        "model": "auth.user",
        "fields":
        {"username": "******",
        "first_name": "Kyle",
        "last_name": "Reese",
        "is_active": true,
        "is_superuser": false,
        "is_staff": false,
        "last_login": "******",
        "groups": [],
        "user_permissions": [],
        "password": "******",
        "email": "*****@*****.**",
        "date_joined": "2012-12-13 10:42:13"}}"""

        self.species_blob = """
Пример #59
0
 def setUp(self):
     self.p1 = Point(-8515941.0, 4953519.0)
     self.p2 = Point(-7615441.0, 5953519.0)
     self.instance = make_instance()
     self.user = make_commander_user(self.instance)
Пример #60
0
 def test_user(self):
     self.instance = make_instance()
     user = make_commander_user(self.instance)
     self.assert_template('/users/%s/' % user.username, 'treemap/user.html')