def test_smart_merge_with_other_release(self): # Given from papaye.factories.root import repository_root_factory from papaye.models import Package, Release, ReleaseFile from papaye.proxy import smart_merge release1 = factories.ReleaseFactory( version='1.5', filename='pyramid-1.5.tar.gz', md5_digest='12345', package__name='pyramid', ) release2 = factories.ReleaseFactory( version='1.6', filename='pyramid-1.6.tar.gz', md5_digest='12345', package__name='pyramid', ) package1 = release1.package package2 = release2.package # When result = smart_merge(package1, package2) # Then assert isinstance(result, Package) assert len(list(result.root)) == 1 assert len(list(result)) == 2 assert repository_root_factory(self.request) is not result.root result = smart_merge(package1, package2) assert isinstance(result, Package) assert len(list(result)) == 2 assert repository_root_factory(self.request) is not result.root
def test_smart_merge_with_other_release(self): from papaye.factories import repository_root_factory from papaye.models import Package, Release, ReleaseFile from papaye.proxy import smart_merge package1 = Package(name='pyramid') package1['1.5'] = Release(name='1.5', version='1.5', metadata={}) package1['1.5']['pyramid-1.5.tar.gz'] = ReleaseFile( filename='pyramid-1.5.tar.gz', content=b'', md5_digest='12345' ) package2 = Package(name='pyramid') package2['1.6'] = Release(name='1.6', version='1.6', metadata={}) package2['1.6']['pyramid-1.6.tar.gz'] = ReleaseFile( filename='pyramid-1.6.tar.gz', content=b'', md5_digest='12345' ) result = smart_merge(package1, package2) assert isinstance(result, Package) assert len(list(result.__parent__)) == 1 assert len(list(result)) == 2 assert repository_root_factory(self.request) is not result.__parent__ result = smart_merge(package1, package2) assert isinstance(result, Package) assert len(list(result)) == 2 assert repository_root_factory(self.request) is not result.__parent__
def test_smart_merge_dont_update_existing_release_file(self): from papaye.models import Package, Release, ReleaseFile, Root from papaye.proxy import smart_merge package1 = Package(name='pyramid') package1['1.5'] = Release(version='1.5', metadata={}) package1['1.5']['pyramid-1.5.tar.gz'] = ReleaseFile( filename='pyramid-1.5.tar.gz', content=b'a existing content', md5_digest='12345' ) package2 = Package(name='pyramid') package2['1.5'] = Release(version='1.5', metadata={}) package2['1.5']['pyramid-1.5.tar.gz'] = ReleaseFile( filename='pyramid-1.5.tar.gz', content=b'a new content', md5_digest='12345' ) root = Root(name='root') result = smart_merge(package1, package2, root=root) assert isinstance(result, Package) assert len(list(result)) == 1 assert len(list(result['1.5'])) == 1 assert result.__parent__ is root
def test_smart_merge_with_none_remote_package(self): from papaye.models import Package, Release, ReleaseFile, Root from papaye.proxy import smart_merge package = Package(name='pyramid') package['1.5'] = Release(version='1.5', metadata={}) package['1.5']['pyramid-1.5.whl'] = ReleaseFile( filename='pyramid-1.5.whl', content=b'', md5_digest='12345' ) root = Root(name='root') result = smart_merge(package, None, root=root) assert isinstance(result, Package) assert len(list(result)) == 1 assert len(list(result['1.5'])) == 1 assert result.__parent__ is root
def test_smart_merge_with_other_package(self): from papaye.models import Package, Release, ReleaseFile from papaye.proxy import smart_merge release1 = factories.ReleaseFactory( version='1.5', filename='pyramid-1.5.tar.gz', md5_digest='12345', package__name='pyramid', ) release2 = factories.ReleaseFactory( version='1.6', filename='pyramid-1.6.tar.gz', md5_digest='12345', package__name='pyramid', ) package1 = release1.package package2 = release2.package result = smart_merge(package1, package2) assert isinstance(result, Package) assert len(list(result.root)) == 1 assert result.__name__ == 'pyramid'