# Path: muninn/schema.py
# def prefix_message_with_path(path, message):
# def join(path, *args):
#     def __init__(self, type):
#     def __init__(self, optional=False, index=False):
#     def name(cls):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value, partial=False, path=""):
#     def __new__(meta, name, bases, dct):
#     def validate(cls, value, partial=False, path=""):
#     def __getitem__(cls, name):
#     def is_optional(cls, name):
#     def has_index(cls, name):
#     def __len__(cls):
#     def __iter__(cls):
#     def __contains__(cls, name):
# class optional(object):
# class Type(object):
# class Long(Type):
# class Integer(Type):
# class Real(Type):
# class Boolean(Type):
# class Text(Type):
# class Namespace(Type):
# class Timestamp(Type):
# class UUID(Type):
# class Geometry(Type):
# class Container(Type):
# class Sequence(Container):
# class MetaMapping(type):
# 
# Path: muninn/geometry.py
# class Polygon(GeometrySequence):
#     def ring(self, index):
#         return self[index]
# 
#     def exterior_ring(self):
#         return self[0]
# 
#     def interior_ring(self, index):
#         return self[index + 1]
# 
#     def as_wkt(self, tagged=True):
#         wkt = "(" + ", ".join([geometry.as_wkt(False) for geometry in self]) + ")" if self else "EMPTY"
#         return "POLYGON " + wkt if tagged else wkt
# 
#     def __repr__(self):
#         return "Polygon(rings=%r)" % self._geometries
# 
#     def __str__(self):
#         return self.as_wkt()
# 
# class LinearRing(GeometrySequence):
#     def __init__(self, geometries=[]):
#         super(LinearRing, self).__init__(geometries)
# 
#         if self and len(self) < 3:
#             raise ValueError("linear ring should be empty or should contain >= 3 points")
# 
#     def point(self, index):
#         return self[index]
# 
#     def as_wkt(self, tagged=True):
#         if not self:
#             wkt = "EMPTY"
#         else:
#             wkt = "(%s, %f %f)" % (", ".join(["%f %f" % (point.x, point.y) for point in self]), self.point(0).x,
#                                    self.point(0).y)
#         return "LINESTRING " + wkt if tagged else wkt
# 
#     def __repr__(self):
#         return "LinearRing(points=%r)" % self._geometries
# 
#     def __str__(self):
#         return self.as_wkt()
# 
# class Point(Geometry):
#     def __init__(self, x, y):
#         self._coordinates = [x, y]
# 
#     @property
#     def x(self):
#         return self._coordinates[0]
# 
#     @x.setter
#     def x(self, value):
#         self._coordinates[0] = value
# 
#     @property
#     def y(self):
#         return self._coordinates[1]
# 
#     @y.setter
#     def y(self, value):
#         self._coordinates[1] = value
# 
#     @property
#     def min_x(self):
#         return self.x
# 
#     @property
#     def max_x(self):
#         return self.x
# 
#     @property
#     def min_y(self):
#         return self.y
# 
#     @property
#     def max_y(self):
#         return self.y
# 
#     @property
#     def longitude(self):
#         return self._coordinates[0]
# 
#     @longitude.setter
#     def longitude(self, value):
#         self._coordinates[0] = value
# 
#     @property
#     def latitude(self):
#         return self._coordinates[1]
# 
#     @latitude.setter
#     def latitude(self, value):
#         self._coordinates[1] = value
# 
#     def as_wkt(self, tagged=True):
#         wkt = "(%f %f)" % (self.x, self.y)
#         return "POINT " + wkt if tagged else wkt
# 
#     def __getitem__(self, index):
#         return self._coordinates[index]
# 
#     def __setitem__(self, index, value):
#         self._coordinates[index] = value
# 
#     def __len__(self):
#         return 2
# 
#     def __eq__(self, other):
#         return self._coordinates == other._coordinates
# 
#     def __ne__(self, other):
#         return not self == other
# 
#     def __repr__(self):
#         return "Point(x=%f, y=%f)" % (self.x, self.y)
# 
#     def __str__(self):
#         return self.as_wkt()


    from configparser import ConfigParser
    from ConfigParser import ConfigParser
from muninn.schema import Mapping, optional, Text, Integer
from muninn.geometry import Polygon, LinearRing, Point
import datetime
import glob
import logging
import os
import sys
import tarfile
import time
import unittest
    import urllib
    import urllib2
import pytest
import boto3
import botocore
import swiftclient
import muninn
import shutil

        if archive._params['use_enclosing_directory']:
            properties = self._ingest_multi_file(archive)

            for name in names:
                oldpath = os.path.join(
                    archive._params['archive_path'],
                    'multi',
                    name
                )
                assert archive._checker.exists(oldpath)

            sys.modules['product_type'].ARCHIVE_PATH = 'bicycle'
            archive.rebuild_properties(properties.core.uuid)

            for name in names:
                path = os.path.join(
                    'bicycle/multi',
                    name
                )
                assert archive._checker.exists(path)

            for name in names:
                oldpath = os.path.join(
                    archive._params['archive_path'],
                    'multi',
                    name
                )
                assert not archive._checker.exists(oldpath)


# Path: muninn/schema.py
# def prefix_message_with_path(path, message):
# def join(path, *args):
#     def __init__(self, type):
#     def __init__(self, optional=False, index=False):
#     def name(cls):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value):
#     def validate(cls, value, partial=False, path=""):
#     def __new__(meta, name, bases, dct):
#     def validate(cls, value, partial=False, path=""):
#     def __getitem__(cls, name):
#     def is_optional(cls, name):
#     def has_index(cls, name):
#     def __len__(cls):
#     def __iter__(cls):
#     def __contains__(cls, name):
# class optional(object):
# class Type(object):
# class Long(Type):
# class Integer(Type):
# class Real(Type):
# class Boolean(Type):
# class Text(Type):
# class Namespace(Type):
# class Timestamp(Type):
# class UUID(Type):
# class Geometry(Type):
# class Container(Type):
# class Sequence(Container):
# class MetaMapping(type):
# 
# Path: muninn/geometry.py
# class Polygon(GeometrySequence):
#     def ring(self, index):
#         return self[index]
# 
#     def exterior_ring(self):
#         return self[0]
# 
#     def interior_ring(self, index):
#         return self[index + 1]
# 
#     def as_wkt(self, tagged=True):
#         wkt = "(" + ", ".join([geometry.as_wkt(False) for geometry in self]) + ")" if self else "EMPTY"
#         return "POLYGON " + wkt if tagged else wkt
# 
#     def __repr__(self):
#         return "Polygon(rings=%r)" % self._geometries
# 
#     def __str__(self):
#         return self.as_wkt()
# 
# class LinearRing(GeometrySequence):
#     def __init__(self, geometries=[]):
#         super(LinearRing, self).__init__(geometries)
# 
#         if self and len(self) < 3:
#             raise ValueError("linear ring should be empty or should contain >= 3 points")
# 
#     def point(self, index):
#         return self[index]
# 
#     def as_wkt(self, tagged=True):
#         if not self:
#             wkt = "EMPTY"
#         else:
#             wkt = "(%s, %f %f)" % (", ".join(["%f %f" % (point.x, point.y) for point in self]), self.point(0).x,
#                                    self.point(0).y)
#         return "LINESTRING " + wkt if tagged else wkt
# 
#     def __repr__(self):
#         return "LinearRing(points=%r)" % self._geometries
# 
#     def __str__(self):
#         return self.as_wkt()
# 
# class Point(Geometry):
#     def __init__(self, x, y):
#         self._coordinates = [x, y]
# 
#     @property
#     def x(self):
#         return self._coordinates[0]
# 
#     @x.setter
#     def x(self, value):
#         self._coordinates[0] = value
# 
#     @property
#     def y(self):
#         return self._coordinates[1]
# 
#     @y.setter
#     def y(self, value):
#         self._coordinates[1] = value
# 
#     @property
#     def min_x(self):
#         return self.x
# 
#     @property
#     def max_x(self):
#         return self.x
# 
#     @property
#     def min_y(self):
#         return self.y
# 
#     @property
#     def max_y(self):
#         return self.y
# 
#     @property
#     def longitude(self):
#         return self._coordinates[0]
# 
#     @longitude.setter
#     def longitude(self, value):
#         self._coordinates[0] = value
# 
#     @property
#     def latitude(self):
#         return self._coordinates[1]
# 
#     @latitude.setter
#     def latitude(self, value):
#         self._coordinates[1] = value
# 
#     def as_wkt(self, tagged=True):
#         wkt = "(%f %f)" % (self.x, self.y)
#         return "POINT " + wkt if tagged else wkt
# 
#     def __getitem__(self, index):
#         return self._coordinates[index]
# 
#     def __setitem__(self, index, value):
#         self._coordinates[index] = value
# 
#     def __len__(self):
#         return 2
# 
#     def __eq__(self, other):
#         return self._coordinates == other._coordinates
# 
#     def __ne__(self, other):
#         return not self == other
# 
#     def __repr__(self):
#         return "Point(x=%f, y=%f)" % (self.x, self.y)
# 
#     def __str__(self):
#         return self.as_wkt()


# Path: test/test.py
    from configparser import ConfigParser
    from ConfigParser import ConfigParser
from muninn.schema import Mapping, optional, Text, Integer
from muninn.geometry import Polygon, LinearRing, Point
import datetime
import glob
import logging
import os
import sys
import tarfile
import time
import unittest
    import urllib
    import urllib2
import pytest
import boto3
import botocore
import swiftclient
import muninn
import shutil


        if archive._params['use_enclosing_directory']:
            properties = self._ingest_multi_file(archive)

            for name in names:
                oldpath = os.path.join(
                    archive._params['archive_path'],
                    'multi',
                    name
                )
                assert archive._checker.exists(oldpath)

            sys.modules['product_type'].ARCHIVE_PATH = 'bicycle'
            archive.rebuild_properties(properties.core.uuid)

            for name in names:
                path = os.path.join(
                    'bicycle/multi',
                    name
                )
                assert archive._checker.exists(path)

            for name in names:
                oldpath = os.path.join(
                    archive._params['archive_path'],
                    'multi',
                    name
                )
                assert not archive._checker.exists(oldpath)


    def test_rebuild_properties_hash(self, archive):